php oop调用私有方法

时间:2015-03-12 13:55:32

标签: php oop

我有一个看起来像这样的课程

class a {

    private $one;

    private function abc() {

    $this->one = "I am a string";
    return $this;
}

$call = new a;
$call->abc()->other_function();

当我在做matutor方法时,php在调用函数abc()时遇到了致命的错误。它说从上下文调用私有方法xxx。

我对oop的了解非常新,私有方法/属性只能在同一个类中使用。但是,即使它在同一个类中,也无法调用abc()。

怎么回事?

2 个答案:

答案 0 :(得分:0)

因为您没有在类代码之外调用 类中的方法。

$call = new a;
$call->abc()->other_function();

这超出了该类的上下文,这就是您遇到致命错误的原因。

答案 1 :(得分:0)

Private只能在班级中使用。

Protected只能在类本身和子类中使用。

Public可以在任何地方使用。

class a {

    private $one;

    public function abc() { //notice the public

      $this->one = "I am a string";
      return $this->one; 
    }
}

$call = new a;
echo $call->abc();