Void functies zijn de functies die niets returnen. Over het algemeen gaat het om setters en functies die de state van de classe veranderen.
Een voorbeeld
class Car
{
protected $speed = 50;
// Hieronder zie je een void functie (= geen return)
public function setSpeed($speed)
{
$this->speed = $speed;
}
/* Meer code */
}
De code om dit aan te roepen ziet er dan bijvoorbeeld zo uit:
$c = new Car();
$c->setColor(Color::RED);
$c->setSpeed(0);
$c->openDoor(1);
$c->setSpeed(100);
Wanneer echter je variable naam ($c) een beetje groot wordt ($eenOfAnderMerkAutoNaam) is dit een typewerk waar je u tegen zegt. Daarnaast wordt het er ook een stuk minder leesbaar op.
Om dit tegen te gaan laat ik alle void functies $this returnen. Zo krijg je de volgende code:
class Car
{
protected $speed = 50;
// Hieronder zie je een void functie (= geen return)
public function setSpeed($speed)
{
$this->speed = $speed;
return $this;
}
/* Meer code */
}
$c = new Car();
$c->setColor(Color::RED)
->setSpeed(0)
->openDoor(1)
->setSpeed(100);
En kijk eens aan, je hoeft de variable maar 1 keer aan te roepen!
Check je!