Objekt i arrayer
Samla flera objekt i en array, till exempel alla bilar i ett garage.
Ett garage med bilar
Ett program har sällan bara ett objekt. Oftast har du en samling: alla bilar i ett garage, alla rum i ett bokningssystem. Samlingen är en vanlig array där varje element är ett objekt.
Nå ett objekt i arrayen
Du når ett enskilt objekt med dess index, och anropar sedan en metod med ->:
echo $garage[0]->info(); // första bilen
echo $garage[3]->marke; // märket på den fjärde bilen
$garage[0] är ett Bil-objekt, så allt du kan göra med en bil kan du göra med $garage[0].
Prova själv
- Skriv ut bara den sista bilen i garaget. Tips:
count($garage) - 1. - Skriv ut alla bilar som är blå eller gröna.
- Ta bort den första bilen ur garaget med
array_shift()och skriv ut listan igen. - Lägg till metoden
lackera($nyFarg)i klassen och lackera om den andra bilen.
Garaget som egen klass
Garaget har också ett ansvar: att hålla reda på bilarna. Då kan det vara en egen klass, med arrayen som en privat egenskap:
class Garage {
private $bilar = [];
public function stallIn(Bil $bil) {
$this->bilar[] = $bil;
}
public function antal() {
return count($this->bilar);
}
}
Bil $bil i parentesen betyder att metoden bara tar emot Bil-objekt. Det här bygger du vidare på i uppgiften.