把这个问题写成文字并不是很好....
我正在使用API更新一些客户信息
$customer = new Customer();
$customer->first_name = $value;
$customer->update();
以上内容会更新first_name
,但我想改变名字的位置:
$attribute = 'first_name';
$customer = new Customer();
$customer->$attribute = $value;
$customer->update();`
然后会引用Customer类中的公共变量。
我想避免为每个属性编写一个方法(setter)。
答案 0 :(得分:2)
$obj->$attr
和$obj->{$attr}
都将以相同的方式运作。在这种情况下,{}
是多余的。当你需要写$obj->{"123"}
之类的东西时,它们才有意义。
<?php
$obj = new stdClass();
$attr = 'my_attr';
$obj->$attr = 'test';
var_dump($obj);
?>
您的代码存在的问题是您输错了。或者,如果拼写错误仅在问题文本中,那么您没有任何问题。
答案 1 :(得分:0)
你可以像
那样做$attr = 'my_attr';
$obj->{$attr};