如何在对象构造期间将PHP对象传递给静态函数?

时间:2009-08-30 20:05:09

标签: php

参见代码:

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分开。

非常感谢任何回复。

1 个答案:

答案 0 :(得分:3)

这适用于我,至少在PHP 5.2.8中。它输出:

object(Bar)#1 (1) {
  ["someData"]=>
  string(3) "bla"
}