PHP stdClass设置'id'属性奇怪的行为

时间:2012-10-25 13:08:48

标签: php stdclass

任何人都可以解释这种行为吗?

    $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'属性。我可以动态设置其他变量名称 - 即'任意'。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

没有名为$id的变量。

试试这个

$id = "2";

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

答案 1 :(得分:1)

关于php如何评估$object->$$test;

首先评估$$test,这会导致变量$id,这会产生Notice: Undefined variable: id

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

答案 2 :(得分:0)

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

$object->{$test}

而不是

$object->$$test
相关问题