Ik vraag me af of het nodig is, of gewoon aangeraden om in classes steeds $this-> te gebruiken voor je variabelen. Het werkt bij mij ook perfect zonder, en ik vraag me nu af of het wel goed is om het zonder te doen..
$this->VarName verwijst naar een variable in de class of in een extended class. Maar je kan ook andere variablen aanroepen, globals dan maar ook in functies (deuh ).
<?php
class test
{
var $variabele;
function test()
{
$this->variabele = 'test';
}
function showVar()
{
return $this->variabele;
}
}
$obj = new test();
$var = $obj->showVar();
echo $var;
?>
Yeah ik weet dat ook wel maar met een gewone variable kan je dat ook dus. In classes is het $this->var omdat het een variable is in die class. (naar mijn mening beetje onzinnige topic , maar kan verstaan dat je met zo'n vragen zit)
Waarom moet je $this->var gebruiken (verklaring 2):
Omdat $this een reference is van je object, anders gaat het misschien over een andere var.
$this heeft dezelfde variabelen als het huidige object (logisch) en de waarden vd lidvariabelen van het object kunnen veranderd worden op 2 manieren:
class Een_class {
var $var;
function changeVar() {
$this->var = 'test';
}
}
$mijn_object = new Een_class;
$mijn_object->changeVar();
en
$mijn_object->var = 'test';
class Een_class {
var$var;
function changeVar(){
$this->var='test';
}
}
$mijn_object=new Een_class;
$mijn_object->changeVar();
en
$mijn_object->var='test';
Hebben hetzelfde effect. Het tweede is natuurlijk dynamischer maar dat kan aangepast worden door met argumenten te werken. Het bovenstaande lijkt logisch maar dit is dus de verklaring waarom (references).