繁体   English   中英

php类中的方法链接

[英]method chaining in php class

我想了解这些链接方法有什么区别

$obj->prop_a()->prob_b($y);

$obj->prop_a->prob_b($x);

如何定义它以及如何工作。

提前致谢

$obj->prop_a()->prob_b($y);

您可以通过函数访问prop_a()。 它(显然)返回一个对象,该对象实现了prob_b()函数。

$obj->prop_a->prob_b($x);

您将prop_a作为包含对象的公共属性进行访问,该对象又实现了prob_b()函数。

一个调用prop_a作为方法,另一个不调用。

这个:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM