PHP özel statik yöntem erişim

3 Cevap php

PHP ve ben adını değiştirmeniz gerekir bir nesnenin statik yöntem erişmek gerekir.

   private $controlleur = null;
   private static $instance = null;

   private function __construct() {
     $nomControlleur = "Controlleurs\_" . Session::singleton()->controlleur;
     $this->controlleur = $nomControlleur::singleton();
   }

This preceding code is giving me " Syntax error unexpected :: ".
I've also tried writing {$nomControlleur}::singleton(); but it's giving me even more errors, thanks a lot for your help.

Çelik Topları

3 Cevap

Kullanın:

$this->controlleur = call_user_func(array($nomControlleur, 'singleton'));

veya (5.2.3 + sadece)

$this->controlleur = call_user_func($nomControlleur . '::singleton');

Ne hakkında

$staticCall = $nonController."::singleton()";
$staticCall();

?

Ben PHP __callStatic() olarak orada da var PHP 5.3 şimdi düşünüyorum __call().

Yani __callStatic() tanımlayabilir ve tanımsız statik yöntem çağrısı bu yöntemi vuracaktır.

Daha fazla bilgi ve kullanım için burada kontrol edin.

http://www.php.net/manual/en/language.oop5.overloading.php#object.callstatic