【问题标题】:PHP Change object field value by passing its name from variablePHP通过从变量传递其名称来更改对象字段值
【发布时间】:2014-01-21 13:46:43
【问题描述】:

我尝试自己做,但 Google 不理解我。问题似乎很简单,除非我找不到答案。

我有一些对象,我想改变它的值,所以我可以这样做。

$obj->field_suffix1 = "Abracadabra";

问题是我想从变量中传递“suffix1”,所以如果它是数组我会这样做

$obj['field_'.$suffix] = "Abracadabra";

有什么建议吗? 谢谢指教! 多米尼克。

【问题讨论】:

    标签: php variables object


    【解决方案1】:

    试试,

    $obj->field_{$suffix} = "Abracadabra";
    

    【讨论】:

    • 你似乎有一个括号,然后是一个花括号
    【解决方案2】:

    使用$obj->$prop 语法:

    o=new StdClass();
    $p="someprop";
    $o->$p="someval";
    print_r($o);
    
    //stdClass Object
    //(
    //    [someprop] => someval
    //)
    

    编辑

    澄清一下:我提醒$p="field_$suffix"; $obj->$p = "Abracadabra";

    【讨论】:

    • 最简单的解决方案 - 同上 ;) 太好了,非常感谢。
    【解决方案3】:

    这应该足够了:

    $yourfield = "field_".$suffix;
    $obj->$yourfield = "Abracadabra";
    

    【讨论】:

    • 就是这样!简单的解决方案!我无法想象它是如此简单!谢谢。
    【解决方案4】:

    这很好用:https://eval.in/92882

    $obj = array();
    $suffix = "suffix1";
    $key = 'field_'.$suffix;
    $obj[$key] = "Abracadabra";
    
    var_dump($obj);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      相关资源
      最近更新 更多