1

谁能解释这种行为?

    $object = new stdClass();


    //This works.
    $object->test = "Test";

    //This works.
    $arbitrary = "arbitrary";
    $object->$$arbitrary = "again, testing";

    //This works.
    $object->id = "2";

    //This fails
    $test = "id";
    $object->$$test  = "2";  // On this line.

我正在尝试通过动态变量名称设置“id”属性。如果我明确说明,我可以很好地设置“id”属性。我可以动态设置其他变量名——即“任意”。有什么建议么?

4

3 回答 3

3

没有名为 的变量$id

试试这个

$id = "2";

$test = "id";
$object->$$test  = "2";  // On this line.
于 2012-10-25T13:10:11.573 回答
1

它是关于 php 如何评估的$object->$$test

首先对 the$$test进行评估,这会导致一个 var$id并且给出一个Notice: Undefined variable: id

一个解决方案是定义一个变量$id,但更好的是使用 $object->{$test}

于 2012-10-25T13:14:33.407 回答
0

存在语法错误。你想要这个我相信:

$object->{$test}

代替

$object->$$test
于 2012-10-25T13:11:54.140 回答