参见代码:
class Foo {
public static function dumpObj($obj) {
var_dump($obj);
}
}
class Bar {
public $someData = 'bla';
public function __construct() {
Foo::dumpObj($this);
}
}
new Bar;
我猜测这个输出'null'因为$ this很特别,我们不能用它来做这种事情。正如您所看到的,我想在Bar开始时从Foo类中调用Bar的方法,并且需要Bar的对象来执行此操作。我当然可以在__construct中修改Bar的对象,所以假设对象已经创建,Bar类之外的东西也可以修改它。
还有其他办法吗?不幸的是,Foo必须保持静态并与Bar分开。
非常感谢任何回复。
答案 0 :(得分:3)
这适用于我,至少在PHP 5.2.8中。它输出:
object(Bar)#1 (1) {
["someData"]=>
string(3) "bla"
}