PHP通过从变量传递其名称来更改对象字段值

时间:2014-01-21 13:46:43

标签: php variables object

我试图自己做,但谷歌不理解我。问题似乎很容易,除非我找不到答案。

我有一些对象,我想改变它的值,所以我可以做到,例如。

$obj->field_suffix1 = "Abracadabra";

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

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

有什么建议吗? 谢谢你的建议! 多米尼克。

4 个答案:

答案 0 :(得分:2)

尝试,

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

答案 1 :(得分:0)

使用$obj->$prop语法:

o=new StdClass();
$p="someprop";
$o->$p="someval";
print_r($o);

//stdClass Object
//(
//    [someprop] => someval
//)

修改

为了说清楚:我$p="field_$suffix"; $obj->$p = "Abracadabra";

答案 2 :(得分:0)

这应该足够了:

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

答案 3 :(得分:0)

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

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

var_dump($obj);