扩展php类中的私有函数的范围

时间:2014-03-20 18:45:40

标签: php

<?php

class Foo {
    private function FooFunction(){

      }
}

class Bar extends Foo {
    public function BarFunction(){
           $this->FooFunction();
       }

}

$foo = new Foo();
$foo->FooFunction();  //Fatal error: Call to private method Foo::FooFunction()
                      //(Fair enough)

$bar = new Bar();
$bar->BarFunction();  //Fatal error: Call to private method Foo::FooFunction()
                      //from context 'Bar' 

我很难理解如何在类中正确声明函数,然后可以在该类的扩展中使用

当我实例化Foo时,我希望FooFunction保持私密性。 但是,我确实需要能够从Bar内部调用它。

1 个答案:

答案 0 :(得分:2)

更改代码如下:

<?php

class Foo {
    protected function FooFunction(){

      }
}

class Bar extends Foo {
    public function BarFunction(){
           $this->FooFunction();
       }

}
在子类中无法访问的

private个方法。 您需要使用protected方法类型。