Nasıl nesnenin yapımı sırasında statik bir işleve bir PHP nesne geçirebilirsiniz?

1 Cevap

Kod bakın:

class Foo {

    public static function dumpObj($obj) {

        var_dump($obj);

    }

}

class Bar {

    public $someData = 'bla';

    public function __construct() {

        Foo::dumpObj($this);

    }

}

new Bar;

$ Bu özel ve biz sadece onunla bu tür bir şey yapamaz, çünkü ben bu çıktısı: 'nullunkine tahmin ediyorum. Gördüğünüz gibi, ben Bar'ın kurulduğu günden sırasında Foo sınıfının içinde Bar'ın yöntemini çağırın, ve bunu yapmak için Bar'ın nesne gerekir istiyorum. Ben tabii, __ konstruktunda Bar'ın nesneyi değiştirmek böylece nesne oluşturuldu varsayılır ve Bar sınıf dışında bir şey de bunu değiştirebilir edebilirsiniz.

Bunun başka bir yolu var mı? Foo maalesef statik ve Bar ayrı kalmalıdır.

Herhangi bir yanıt için çok teşekkürler.

1 Cevap

Bu, en azından PHP 5.2.8, benim için çalışıyor. Bu çıkışlar:

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