是否可以动态添加到PHP对象?说我有这段代码:
$foo = stdObject();
$foo->bar = 1337;
这是有效的PHP吗?
答案 0 :(得分:3)
这在技术上是无效的代码。尝试类似:
$foo = new stdClass();
$foo->bar = 1337;
var_dump($foo);
答案 1 :(得分:3)
有效,只要您使用有效的类stdClass
而不是stdObject
:
$foo = new stdClass();
$foo->bar = 1337;
echo $foo->bar; // outputs 1337
您遇到了这些问题:
stdObject
代替stdClass
new
关键字更多信息:
答案 2 :(得分:0)
是的。您的代码中唯一的问题是在调用new
之前缺少stdClass
,而您使用的是stdObject
,但您的意思是stdClass
<?php
class A {
public $foo = 1;
}
$a = new A;
$b = $a; // $a and $b are copies of the same identifier
// ($a) = ($b) = <id>
$b->newProp = 2;
echo $a->newProp."\n";
答案 3 :(得分:0)
你关闭了。
$foo = stdObject();
这需要:
$foo = new stdClass();
然后它会起作用。