Как я могу передать объект PHP статической функции во время создания объекта? - PullRequest
1 голос
/ 31 августа 2009

См. Код:

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 тоже может его изменить.

Есть ли другой способ сделать это? К сожалению, Foo должен оставаться неподвижным и отделенным от Bar.

Большое спасибо за любые ответы.

1 Ответ

3 голосов
/ 31 августа 2009

Это работает для меня, по крайней мере, в PHP 5.2.8. Это выводит это:

object(Bar)#1 (1) {
  ["someData"]=>
  string(3) "bla"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...