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
- Skapa en bil utan att ange färg:
new Bil("Saab"). Vad säger felmeddelandet? - Ge parametern
$fargstandardvärdet"Vit"och prova igen. - Lägg till egenskapen
$milsom alltid börjar på 0, och en metodkor($antal)som ökar den.