$this
有什么用?
我在以下两种情况下都能正确得到结果。
没有$this
class Car {
function Beetle($colour) {
return $colour;
}
}
$car = new Car();
echo $car->Beetle("Blue");
使用$this
class Car {
function Beetle($colour) {
$this->colour = $colour;
return $colour;
}
}
$car=new Car();
echo $car->Beetle("Blue");
在这两种情况下,我得到了相同的结果:“蓝色。”
我不明白为什么以及我们使用的$this
。
答案 0 :(得分:2)
$this
是指使用new
运算符创建的实例化对象。
您的第一个代码示例只返回传递给它的参数($colour
)。
您的第二个示例将属性分配给其对象(使用$this
),然后再次返回该参数。
答案 1 :(得分:1)
据我所知, $ this 用于访问您所在类中的变量和方法,它本质上是该类的一个对象。在两个示例中,无论如何都要返回输入参数。
没有 $ this ;
class Car{
private $colour;
function Beetle($colour) {
return $this->colour;
}
}
使用 $ this ;
class Car{
private $colour;
function Beetle($colour) {
$this->colour = $colour;
return $this->$colour;
}
}
我想在这里向您展示的是,在第一个示例中,它将返回null,因为属性颜色尚未由函数设置,而第二个示例它将属性设置为输入变量并将返回传入的值。
简而言之, $ this 是我们访问属于该类的属性和方法的方式。
答案 2 :(得分:0)
因为您可能有多个同一类的实例(对象)。
class Car {
var colour;
var parkedNextTo;
function setColout($colour)
{
$this->colour=$colour;
}
function park($nextTo)
{
$this->$nextTo=$nextTo;
}
}
$beetle=new Car();
$beetle->setColour('blue');
$jeep=new Car();
$jeep->setColour('red');
$jeep->nextTo($beetle);