Void functies in classes

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!

Leave a Reply