我有一个看起来像这样的课程
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()。
怎么回事?
答案 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();