0

我在 PHP 中,我必须访问名称必须更改的对象的静态方法。

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

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

前面的代码给了我“语法错误意外::”。
我也试过写 {$nomControlleur}::singleton(); 但它给了我更多的错误,非常感谢你的帮助。

钢球

4

3 回答 3

2

采用:

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

或(仅限 5.2.3+)

$this->controlleur = call_user_func($nomControlleur . '::singleton');
于 2009-09-19T20:03:14.073 回答
0

关于什么

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

?

于 2009-09-19T20:01:15.997 回答
0

我认为现在在 PHP 5.3 中也有 PHP__callStatic()__call().

所以你可以定义__callStatic()和未定义的静态方法调用会命中这个方法。

请在此处查看更多详细信息和用法。

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

于 2013-12-19T23:35:11.453 回答