首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定从子类调用方法的方式

如何确定从子类调用方法的方式
EN

Stack Overflow用户
提问于 2013-03-01 18:54:01
回答 1查看 81关注 0票数 1

请帮帮我。例如,我有一个从Bar类扩展而来的类Foo。

代码语言:javascript
复制
    class Bar
    {
          public function __call($func, $args){
               echo "Calling method {$func}";
          }
          public function __callstatic($func, $args){
               echo "Calling static method {$func}";
          }
          public function run(){
               echo "calling Bar::run method \n";
          }
    }
    class Foo extends Bar
    {
          public $objBar;
          public function __construct(){
              $this -> objBar = new Bar();
          }
          public function callViaObject(){
              $this -> objBar -> run();
              $this -> objBar -> run1();
          }
          public function callViaParent(){
              parent::run();
              parent::run1();
          }
    }
    $foo = new foo();
    $foo -> callViaObject(); 
    /* output 
       calling Bar::run method \n
       Calling method run1; */
    $foo -> callViaParent();
    /* output 
       calling Bar::run method \n
       Calling method run1; !! */

这里有一个问题,当我从子类调用带有parent::的方法时,父类有一个对象,调用方法parent::不是静态调用。

那么我如何签入Bar类,如何调用该方法呢?我可以检查呼叫类型是parent::?

非常感谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-02 02:53:39

在您的类A中添加private static function run1() {}

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

https://stackoverflow.com/questions/15156015

复制
相关文章

相似问题

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