在php类中链接的方法

时间:2011-10-18 08:48:30

标签: php class

我想了解这些链接方法之间的区别

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

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

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

提前致谢

3 个答案:

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