PHP 变量变量
简介
在 PHP 中,可以动态地设置变量名。此类变量采用现有变量的值作为名称。使用一个 $ 符号作为前缀来定义变量变量。
示例
<?php $var1="xyz"; //normal variable $$var1="abcd";//variable variable echo $var1 . "
"; echo $$var1 . "
"; echo "{$$var1} $xyz"; ?>
输出
此脚本生成以下输出
xyz abcd abcd abcd
请注意 $$var1 的值与 $xyz 相同,xyz 是 $var1 的值。
不能将普通变量的数值用作变量变量
示例
<?php $var1=100; //normal variable $$var1=200;//variable variable echo $var1 . "
"; echo $$var1 . "
"; echo $100; ?>
输出
执行此脚本时,会显示以下结果
PHP Parse error: syntax error, unexpected '100' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' line 6
还可以根据数组下标定义一个变量变量。在以下示例中,使用普通数组的第 0 个元素定义了变量变量
示例
<?php $var1=array("aa","bb"); //normal variable ${$var1[0]}=10;//variable variable with array element echo $var1[0] . "
"; echo $aa . "
"; echo ${$var1[0]} . "
"; ?>
输出
这将产生以下结果 -
aa 10 10
还可以使用变量属性名访问类属性。此功能在属性名由数组组成的场景中很有用。
示例
<?php var $u = "Architecture"; var $ugCourses = array("CSE","MECH","CIVIL"); $obj = new branches(); $courses = "ugCourses"; echo $obj->{$courses[0]} . "
"; echo $obj->{$courses}[0] . "
"; ?>
输出
这将产生以下结果 -
Architecture CSE
广告