CMS-kursen

Konstruktorn

En metod som körs automatiskt när ett objekt skapas och ger det sina startvärden.

Ge objektet värden direkt

I förra lektionen satte vi egenskaperna en i taget efter att objektet skapats. Det är lätt att glömma någon. En konstruktor löser det:

  • Den är en metod som anropas automatiskt när ett objekt skapas.
  • Den används för att initiera objektet, alltså ge det sina grundinställningar.
  • Den tar oftast emot parametrar.
  • Den heter alltid __construct, med två understreck.

Värdena inom parentesen i new Bil("BMW", "Blå") skickas till konstruktorn, som sparar dem i objektet med $this.

$this->marke är objektets egenskap, medan $marke är parametern som kom in. De heter ofta likadant, men är två olika saker.

Kortare skrivsätt

Sedan PHP 8 kan du deklarera egenskaperna direkt i konstruktorns parentes. Den här klassen gör samma sak som den ovan:

class Bil {
    public function __construct(
        public string $marke,
        public string $farg,
    ) {}
}

Du kommer att se det skrivsättet i modern PHP-kod.

Prova själv

  1. Skapa en bil utan att ange färg: new Bil("Saab"). Vad säger felmeddelandet?
  2. Ge parametern $farg standardvärdet "Vit" och prova igen.
  3. Lägg till egenskapen $mil som alltid börjar på 0, och en metod kor($antal) som ökar den.