1

是否可以简单地使用此代码...

echo $object->property1;
echo $object->property2;
echo $object->property3;

... 用这样的东西,用 eval ?

for ($i=0; $i<10; $i++)
    echo eval("$object->property".$i);

谢谢。

4

3 回答 3

6

您可以不使用动态创建属性名称eval()

$object = new stdClass();
$object->property1 = 10;
$object->property2 = 20;
$object->property3 = 30;

for ($i=1; $i<4; $i++)
    echo $object->{"property".$i};
于 2013-05-23T09:37:27.760 回答
0

你不能做这样的事情:

for ($i=0; $i<10; $i++)
{
    $tmp = "$object->property".$i
    echo $$tmp;
}

我不确定动态变量是否在 OOPhP 中以这种方式应用,我看到了反对票 :-)

于 2013-05-23T09:36:15.087 回答
0

那么 $object 将超出 eval 函数的范围。您需要在 eval 字符串中定义对象。

于 2013-05-23T09:34:19.140 回答