PHP 变量和常量:可变变量
问题
在 PHP 编程中,我们是否可以更加灵活地使用变量呢?
回答
在 PHP 编程中,我们可以使用一种叫可变变量的独特变量。由于它允许动态改变一个变量的名称,所以它可以帮助我们在 PHP 编程中灵活地使用变量,但是这个功能和 goto
语句一样,如果滥用的话容易造成逻辑混乱。
语法
首先我们可以通过正常的方式声明一个变量:
$var = 'Hello';
然后我们可以通过在 $var
前面再加一个 $
得到可变变量:
$$var = 'world!'
此时的 $$var
和 $Hello
是等价的:
$$var === $Hello // 他们的值都为 string(5) "world"
因此,此时我们可以使用 $Hello
来动态引用 $$var
。
示例
例 1 —— 一般使用
<?php
$var = 'Hello';
$$var = 'world';
echo "$var ${$var} <br>";
echo "$var $Hello";
运行结果:
Hello world
Hello world
bool(true)
提示
在 PHP 的函数和类的方法中,超全局变量 $GLOBALS
不能用作可变变量。$this
变量也是一个特殊变量,不能被动态引用。