php chain方法返回变量,方法调用另一个方法

时间:2014-06-22 23:29:39

标签: php return-value method-chaining

我看到了关于连锁方法的不同文章,但我仍然不明白"返回$ this"和"返回$ this-> SomeVariable"。我也想知道一个方法如何在类内外调用另一个方法。

有人可以解释一下吗? 谢谢你!

我的例子,它回应" bca",但我不明白为什么" a"是最后一个显示...

class validation {

    public function __construct($a) {
        $this->a = $a;
    }
    public function one($a) {
        echo $a = "b";
        return $this;
    }
    public function two($a) {
        echo $a = "c";
        return $this->a;
    }
}

$a = "a";
$NameErr = new validation($a);
echo $NameErr->one($a)->two($a);

2 个答案:

答案 0 :(得分:0)

首先让我说 $ this 指的是您所在的课程。

这种编码方式称为流畅的界面 return $ this 返回当前对象

 $NameErr->one($a)->two($a);

相同
$NameErr->one($a);
$NameErr->two($a);

在这种情况下

首先调用 one() 方法,   因此打印值 b 并返回类的对象。  现在调用方法 两个() ,  回显出值 c 并返回属性,该属性在类的旁边回显。

  

ps:将变量$ a声明为私有将是一个不错的做法。

答案 1 :(得分:0)

它从 2($ a)返回,因为它返回 $ this-> a ,它在构造函数中设置为“a”和方法 one($ a)返回对象的实例,然后将其称为函数二。

$ this指的是对象实例。所以区别在于返回$ this-> SomeVariable它只返回变量。

也只是一个不错的编码提示。在类中声明$ a作为私有变量,如下所示:

 class Validation
 {
      private $a;
 }