我看到了关于连锁方法的不同文章,但我仍然不明白"返回$ 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);
答案 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;
}