2

是否可以即时添加到 PHP 对象?说我有这个代码:

$foo = stdObject();
$foo->bar = 1337;

这是有效的 PHP 吗?

4

4 回答 4

3

从技术上讲,这不是有效的代码。尝试类似:

$foo = new stdClass();
$foo->bar = 1337;
var_dump($foo);

http://php.net/manual/en/language.types.object.php

于 2012-06-26T17:52:30.763 回答
3

只要您使用有效的类,例如stdClass而不是stdObject

$foo = new stdClass();
$foo->bar = 1337;
echo $foo->bar; // outputs 1337

你有这些问题:

  • 使用stdObject代替stdClass
  • new不使用关键字实例化您的对象

更多信息:

于 2012-06-26T17:52:55.190 回答
0

是的。您的代码中唯一的问题是它缺少 a newbefore call 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";
于 2012-06-26T17:51:49.857 回答
0

你很近。

$foo = stdObject();

这需要是:

$foo = new stdClass();

然后它将起作用。

于 2012-06-26T17:53:48.933 回答