What is the purpose of “$this”?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What does $this mean in PHP?
无
1 2 3 4 5 6 7 8 9 | class Car { function Beetle($colour) { return $colour; } } $car = new Car(); echo $car->Beetle("Blue"); |
与
1 2 3 4 5 6 7 8 9 10 | class Car { function Beetle($colour) { $this->colour = $colour; return $colour; } } $car=new Car(); echo $car->Beetle("Blue"); |
在这两个案例中,我得到了相同的结果:"蓝色"。我不明白我们为什么要使用
第一个代码示例只返回传递给它的参数(
第二个示例将属性赋给它的对象(使用
就我所了解的$而言,它用于访问您所在的类中的变量和方法,它本质上是该类的对象。在这两个示例中,您无论如何都要返回输入参数。
没有这个;
1 2 3 4 5 6 7 8 | class Car{ private $colour; function Beetle($colour) { return $this->colour; } } |
带着这个;
1 2 3 4 5 6 7 8 9 | class Car{ private $colour; function Beetle($colour) { $this->colour = $colour; return $this->$colour; } } |
这里我想向您展示的是,在第一个示例中,它将返回空值,因为函数尚未设置属性颜色,而在第二个示例中,它将属性设置为输入变量,并将返回传入的值。
简而言之,$这是我们访问属于类的属性和方法的方式。
因为您可能有同一类的多个实例(对象)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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); |