任何人都可以解释这种行为吗?
$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'属性。我可以动态设置其他变量名称 - 即'任意'。有什么建议吗?
答案 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