我想了解这些链接方法之间的区别
$obj->prop_a()->prob_b($y);
和
$obj->prop_a->prob_b($x);
如何定义它以及它是如何工作的。
提前致谢
答案 0 :(得分:1)
在
$obj->prop_a()->prob_b($y);
您将prop_a()作为函数进行访问。它显然返回一个对象,它实现了一个prob_b() - 函数。
在
$obj->prop_a->prob_b($x);
您将prop_a作为公共属性访问,其中包含一个对象,该对象再次实现了prob_b()函数。
答案 1 :(得分:1)
一个调用prop_a
作为方法,另一个不调用。
答案 2 :(得分:1)
此:
class A {
public function prop_b($x) {
return 4*$x;
}
}
class B {
public function prop_a() {
$a = new A();
return $a;
}
}
class C {
public $prop_a;
public function __construct() {
$this->prop_a = new A();
}
}
$b = new B();
$c = new C();
$b->prop_a()->prob_b(5);
$c->prop_a->prop_b(5);