首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP自定义静态方法访问

问PHP自定义静态方法访问
EN

Stack Overflow用户
提问于 2009-09-19 19:58:07
回答 3查看 157关注 0票数 0

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

代码语言:javascript
复制
   private $controlleur = null;
   private static $instance = null;

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

上面的代码给出了“语法错误意外::”。

我也尝试过编写{$nomControlleur}::singleton();但它给了我更多的错误,非常感谢您的帮助。

钢球

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-19 20:03:14

使用:

代码语言:javascript
复制
$this->controlleur = call_user_func(array($nomControlleur, 'singleton'));

或(仅限5.2.3+)

代码语言:javascript
复制
$this->controlleur = call_user_func($nomControlleur . '::singleton');
票数 2
EN

Stack Overflow用户

发布于 2009-09-19 20:01:16

关于

代码语言:javascript
复制
$staticCall = $nonController."::singleton()";
$staticCall();
票数 0
EN

Stack Overflow用户

发布于 2013-12-20 07:35:11

我认为在PHP5.3中,和__call()一样,PHP5.3也有__callStatic()。

因此您可以定义__callStatic(),未定义的静态方法调用将命中此方法。

有关更多详细信息和用法,请查看此处。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1449379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档