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

时间:2013-03-01 10:54:01

标签: php class scope

请帮帮我。 例如,我有一个类,它从类Bar延伸。

    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类,如何调用该方法? 我可以检查呼叫类型是父::?

非常感谢你们!

1 个答案:

答案 0 :(得分:1)

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