我无法理解变量解析。
我已经通过了这个链接语法,但是这个链接太难理解了。
class Test{
public $var=array('baz'=>'a');
function a(){
return 'amazing_class<br/>';
}
}
function a(){
return 'amazing_out_of_class<br/>';
}
$obj=new Test();
$bar='var';
echo "1. ".$obj->$bar['baz'](); //Output amazing_out_of_class
$bar=array('baz'=>'a');
echo "2. ".$obj->{$bar['baz']}(); //Output amazing_class现在让我们看一下第一种情况:$obj->$bar['baz']()
($obj->var'baz')() ($obj->$bar)['baz']() >>>>>> a() >>> amazing_out_of_class
现在,我还假设它是$obj->{$bar['baz']}()解析的,与上面的和预期的Notice error : undefined Property a相同。
$obj->{$bar['baz']}() >>> ($obj->a)() >>> ($obj->a) is Notice error : undefined Property a
根据第一种情况,Notice error : undefined Property a是我的假设,但它的输出amazing_class
发布于 2017-12-09 14:01:00
很简单
$bar='var';
echo "1. ".$obj->$bar['baz'](); //Output amazing_out_of_class例如,$obj->$bar‘’baz‘计算为
$obj->$bar['baz']() -> $obj->$var['baz']() -> {$obj->a} () -> a()第二个值也被计算为
$obj->{$bar['baz']}() -> $obj->{a}() ( $bar['baz'] as a)参考资料:http://php.net/manual/en/language.variables.php Php.net/手册/en/language.types.string.php age.typees.string.php.net
请补充,如果有什么遗漏
$bar=array('baz'=>'a');
echo "2. ".$obj->{$bar['baz']}();发布于 2017-12-09 14:06:40
也许你需要从
$obj->$bar['baz']();至
$obj->{$bar}['baz']();最终代码将为
$bar='var';
echo "1. ".$obj->{$bar}['baz'](); //Output amazing_out_of_class
$bar=array('baz'=>'a');
echo "2. ".$obj->{$bar['baz']}(); //Output amazing_classhttps://stackoverflow.com/questions/47729216
复制相似问题