【问题标题】:PHP stdClass set 'id' property odd behaviorPHP stdClass 设置'id'属性奇怪的行为
【发布时间】:2012-10-25 13:08:47
【问题描述】:

谁能解释这种行为?

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

【问题讨论】:

    标签: php stdclass


    【解决方案1】:

    没有名为$id的变量。

    试试这个

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

    【讨论】:

    • 谢谢。我在想 $object->$$test 会评估为 $object->id,但它会在名为 id 的变量中查找值。我想我正在寻找的是 $object->{$test} 来评估 $object->id。
    【解决方案2】:

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

    首先评估$$test,这会导致一个变量$id,即给出一个Notice: Undefined variable: id

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

    【讨论】:

      【解决方案3】:

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

      $object->{$test}
      

      而不是

      $object->$$test
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-10
        • 1970-01-01
        • 1970-01-01
        • 2011-07-27
        • 2012-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多