千家信息网

PHP的可变变量与可变函数的用法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"PHP的可变变量与可变函数的用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP的可变变量与可变函数的用法"吧!PHP的可变变量与可
千家信息网最后更新 2026年11月01日PHP的可变变量与可变函数的用法

本篇内容主要讲解"PHP的可变变量与可变函数的用法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP的可变变量与可变函数的用法"吧!

PHP的可变变量与可变函数

什么叫可变。在程序世界中,可变的当然是变量。常量在定义之后都是不可变的,在程序执行过程中,这个常量都是不能修改的。但是变量却不同,它们可以修改。那么可变变量和可变函数又是什么意思呢?很明显,就是用另一个变量来定义他们,这个变量是可变的呀!

可变变量


$a = 'hello';

$$a = 'world';

echo $a, ' ', $hello;

咦,我们没有定义$hello这个变量呀。嗯,从表面上看我们确实没有定义这个变量,但请注意这个$$符号。$符号的意思就是定义变量,当我们在一个$符号后面跟上一个已经定义的变量名,那么这个变量的内容就成为了新的变量名。也就是说,$a的内容hello成为了一个新的变量名叫$hello,然后给它赋值为world。是不是感觉不太好理解,也不便于我们查看代码,这个问题我们最后再说。


当然,以下的用法要注意:


$a = 1;
$$a = 2;

echo $1; // Parse error: syntax error, unexpected '1'
echo ${1}; // ok

$a = ['b', 'c', 'd'];
$$a = 'f';

echo $b, $c, $d;

  • 数字类型不是合法的变量名,不能作为可变变量被定义
  • 但是利用{},是可以输出的,{}会获取{}内部的值并作为一个变量来解析,这里的{1}我们利用可变变量赋值成为了一个变量,直接输出是非常的,但放在{1}中就成为了一个可解析的变量名,我们可以简单的理解为{1}转换成了$'1',成为了一个正式的变量名
  • 数组当然是不行啦
  • 它们这样写都是不会报错的

使用对象就不行了,直接就会报错了,对象是不能进行可变变量的操作的。


class A {}
class B extends A {}

$a = new A();
$$a = new B(); // Catchable fatal error: Object of class A could not be converted to string

可变函数

可变函数其实也大同小异,当我们在一个变量的后面加上()时,PHP就会尝试将这个变量当做函数来解析。


function testA()
{
echo "testA";
}

$a = 'testA';
$a(); // testA

可变变量是将一个字符串转换成了一个变量名,而可变函数则是将一个字符串当做函数名来调用。比如类中的方法,我们可以这样来调用:


class C
{
public function testA()
{
echo "C:testA";
}
public function testB()
{
echo "C:testB";
}
public function testC()
{
echo "C:testC";
}
}

$funcs = ['testA', 'testB', 'testC'];

$c = new C();
foreach ($funcs as $func) {
$c->$func();
}

可变函数的这种特性和另外两个系统函数的关系非常紧密,它们是:call_user_func()和call_user_func_array(),Laravel中服务容器的核心实现就是使用了call_user_func_array()来实现依赖注入与控制反转的,这个等我们将来学习到的时候再说。

总结

看似很美好很灵活的可变变量与可变函数在我们实际的开发中却很少使用。究其原因当然是可读性不好,代码不仅是写给机器的,也是写给人看的,团队中人员的水平不齐的话过多的使用这两种特性会产生非常多的混乱情况。但是,很多框架代码中会使用这些特性,所以,这也是我们向更高层次迈进所必须要掌握的东西。不管怎么样,学就是了,能在业务场合中使用可变变量或者函数大大节约代码量写出精致易读的代码更能彰显我们的技术实力。

测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/PHP%E7%9A%84%E5%8F%AF%E5%8F%98%E5%8F%98%E9%87%8F%E4%B8%8E%E5%8F%AF%E5%8F%98%E5%87%BD%E6%95%B0.php

参考链接:https://www.php.net/manual/zh/language.variables.variable.phphttps://www.php.net/manual/zh/functions.variable-functions.php

到此,相信大家对"PHP的可变变量与可变函数的用法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

变量 可变 函数 代码 内容 就是 特性 符号 学习 不行 字符 字符串 实际 对象 常量 意思 方法 程序 输出 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融与金融科技 互联网金融 金融科技 中国 科技 互联网 深圳互联网络科技有限公司 互联网与新科技 米客互联网科技 奔汉互联网科技 衡水科技产业互联网平台 互联网科技实习生岗位职责 成都互联网科技公司100强 汽车互联网创新科技园 互联网企业和科技型企业 全球顶尖互联网科技公司 亳州好赞互联网科技有限公司 领航科技大厦互联网公司 风投北京互联网科技 济南小医互联网科技有限公司招聘 珠海东科互联网科技有限公司 杭州科技互联网公司有哪些 河南商务圈互联网科技有限公司 互联网 科技 奇酷互联网科技公司 北京大学互联网科技怎么样 互联网大会黑科技排名 语蝶互联网科技有限公司 江阴互联网智能科技产品进口 四川慕妮娅互联网科技有限公司 从那以后互联网科技有限公司 银川新华互联网科技学校原画 优雇互联网科技有限公司
0