我在特定情况下需要帮助......
我想通过循环中的字符串访问对象的属性...而该属性实际上是一个具有它自己的属性的对象。
更具体地说,$object->$object->property;
某些不起作用的代码:
$objectAtribute = 'property->propertyOfObject';
echo $object->$objectAtribute;
怎么做!?
顺便说一下我收到一个错误:未定义的属性
TNX
答案 0 :(得分:3)
问题是您正在尝试访问实际上名为property->propertyOfObject
的单个属性。尝试分解它:
$className = 'className';
$object = new $className();
$propertyName = 'propertyName';
echo $object->$propertyName;
或者如果您不想创建新变量:
echo $object->{'propertyName'};
如果对象的类实现ArrayAccess,那么您只需使用
即可echo $object['propertyName'];
答案 1 :(得分:1)
$objectProperty = 'property';
$objectObjectProperty = 'propertyOfObject';
echo $object->$objectProperty->$objectObjectProperty;
如果没有丑陋的'property->propertyOfObject'
技巧或手动“解析”, eval
将无法运作,甚至不会让自己走上你甚至想要这样做的道路。然后你的代码太“动态”并且太过猛击了猴子。