在 PHP 的对象属性中使用变量变量

Using a variable variable in an object property in PHP

提问人:CMarcera 提问时间:9/9/2015 最后编辑:CMarcera 更新时间:9/9/2015 访问量:397

问:

我设置了几个变量:

$field = "XYZ";
$block_hi = $field."_hi";
$block_lo = $field."_lo";

然后我有一个对象,其属性具有上述变量的名称:

$obj->XYZ_hi['val'] = "value1";
$obj->XYZ_lo['val'] = "value2";

我想我可以使用PHP的变量变量来引用属性:

print( $obj->${$block_hi}['val'] );
print( $obj->${$block_lo}['val'] );

我期望得到:

value1
value2

但是,这些行在 Apache 的error_log中抛出错误:

PHP Fatal error:  Cannot access empty property in script.php
PHP 变量 对象属性

评论

1赞 NullPoiиteя 9/9/2015
${$block_hi 应该是$node->{$block_hi}['val']

答:

3赞 tmarois 9/9/2015 #1

这将起作用,您有在这种情况下不需要的双倍 $$。

 $field = "XYZ";
 $block_hi = $field."_hi";
 $block_lo = $field."_lo";

 print($node->{$block_hi}['val']);
 print($node->{$block_lo}['val']);