Practical PHP Programming

可变变量

可变变量不仅难以使用,而且解释起来也比较复杂,所以你可能需要多读几遍本章节。可变变量允许你不用直接知道变量名就可以使用变量,相当于变量的间接引用。来看一下下面的代码:

 <?php
    $bar = 10;
    $foo = "bar"
?>

这样我们就有两种方式来输出$bar,一种是直接用$bar,另一种是$$foo,对,你没看错,有两个美元符号。

通过$$foo的方式,PHP将会首先查找$foo的内容,将其转换为字符串,之后再查找字符串所对应的变量名,最后返回变量的值。在上面的例子当中,$foo是字符串bar,PHP会查找$bar并输出它的值,也就是10。

可变变量相当难用,或许在你束手无策的时候能有点用处。当然,你间接引用越多,代码月难以阅读。例如,下面的代码都输出了Variable!,但我相信你也认为这个很难阅读。

 <?php
    $foo = "Variable!\n";
    $bar = "foo";
    $wom = "bar";
    $bat = "wom";
    print $foo;
    print $$bar;
    print $$$wom;
    print $$$$bat;
?>