按字符串调用属性

时间:2013-05-05 20:11:48

标签: php

我在特定情况下需要帮助......

我想通过循环中的字符串访问对象的属性...而该属性实际上是一个具有它自己的属性的对象。

更具体地说,$object->$object->property;

某些不起作用的代码

$objectAtribute = 'property->propertyOfObject';
echo $object->$objectAtribute;

怎么做!?

顺便说一下我收到一个错误:未定义的属性

TNX

2 个答案:

答案 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将无法运作,甚至不会让自己走上你甚至想要这样做的道路。然后你的代码太“动态”并且太过猛击了猴子。