What is the purpose of "$this"? [duplicate]
Possible Duplicate:
What does $this mean in PHP?
What is the use of $this
?
Without
$this
class Car { function Beetle($colour) { return $colour; } } $car = new Car(); echo $car->Beetle("Blue");
W开发者_如何转开发ith
$this
class Car { function Beetle($colour) { $this->colour = $colour; return $colour; } } $car=new Car(); echo $car->Beetle("Blue");
On both the cases, I'm getting the same result: "Blue."
I don't understand why and for what we are using$this
. $this
refers to the instantiated object that was created with the new
operator.
Your first code example just returns the argument ($colour
) passed to it.
Your second example assigns the property to its object (with $this
) and then returns the argument again.
As far as I understannd $this is used to access variables and methods in the class you are in, it is essentially an object of the class. In both your examples you are returning the input parameter anyway.
Without $this;
class Car{
private $colour;
function Beetle($colour) {
return $this->colour;
}
}
With $this;
class Car{
private $colour;
function Beetle($colour) {
$this->colour = $colour;
return $this->$colour;
}
}
What i'm trying to show you here is that in the first example it will return null as the property colour hasn't been set by the function, wheras the second example it sets the property to the input variable and will return the value that is passed in.
In short, $this is how we access properties and methods that belong to the class.
Because you may have multiple instances (objects) of the same class.
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);
精彩评论