可变变量的解析顺序
用大括号来解决顺序问题。写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
可变变量不可用的情况
在 PHP 的函数和类的方法中,超全局变量不能用作可变变量。
常量的可变变量
常量也可作为可变变量
define("TEST","Fuchs");
$Fuchs = "Test";
echo TEST . "<BR>";
echo ${TEST};
?>
输出:
Fuchs
Test
经典示例展示:
4.1
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
$$$$$$a; //Returns Hello
$$$$$$$a; //Returns World
4.2
for ($i = 1; $i <= 5; $i++) {
${a.$i} = "hello";
}
echo "$a1, $a2, $a3, $a4, $a5";
//结果 hello, hello, hello, hello, hello