Introduktion till OOP i PHP
Nu ska vi ägna oss åt att lära oss OOP i PHP. Låt oss titta på ett exempel från verkliga livet, och sedan överföra det till PHP.
Som exempel tar vi en bil. Den har hjul, färg, karosstyp, motorvolym och så vidare. Dessutom kan föraren ge den kommandon: åka, stanna, svänga höger, vänster etc.
Man kan säga att det finns en viss klass av bilar, som besitter gemensamma egenskaper (alla har hjul och alla kan ges kommandon).
En specifik bil, som står på gatan - det är en representant för denna klass, eller, med andra ord, ett objekt av denna klass. Alla objekt i denna klass har egenskaper: antal hjul, färg, karosstyp och metoder: åka, stanna, svänga höger, vänster.
Med andra ord är själva klassen en ritning, enligt vilken bilar tillverkas på fabriken. Objektet är själva bilen, gjord enligt dessa ritningar.
I PHP skapas en klass med hjälp av nyckelordet
class, efter vilket följer namnet
på denna klass. Låt oss skapa klassen Car:
<?php
class Car
{
// här kod, det vill säga PHP-ritningen för bilen
}
?>
Låt oss nu ange i vår ritning att varje bil, skapad enligt denna ritning, kommer att ha en egenskap för färg och en egenskap för mängden bränsle.
För att göra detta skriver vi inuti klassen egenskapen
$color och egenskapen $fuel:
<?php
class Car
{
// Definiera egenskaper (i huvudsak klassvariabler):
public $color; // bilens färg
public $fuel; // mängd bränsle
}
?>
Låt oss nu skapa metoder för vår klass.
I PHP deklareras metoder, liksom vanliga funktioner,
med hjälp av nyckelordet function,
före vilket nyckelordet
public skrivs.
Som nämnts ovan kan vår bil åka, kan svänga, kan stanna. Låt oss skapa motsvarande metoder i vår klass:
<?php
class Car
{
public $color; // bilens färg
public $fuel; // mängd bränsle
// Kommando att åka:
public function go()
{
// någon PHP-kod
}
// Kommando att svänga:
public function turn()
{
// någon PHP-kod
}
// Kommando att stanna:
public function stop()
{
// någon PHP-kod
}
}
?>
Vi har gjort ritningen för vår bil. Nu måste vi åka till fabriken och skapa ett objekt av denna klass (det vill säga en specifik bil).
I PHP görs detta med hjälp av nyckelordet
new, efter vilket klassens namn skrivs:
<?php
new Car;
?>
Men om man bara skapar ett objekt av klassen - leder det inte till något (det är som att, till exempel, deklarera en array och inte spara den någonstans). Vi behöver en variabel för att lagra detta objekt.
Låt denna variabel heta $myCar
- låt oss skriva in det skapade objektet i den:
<?php
$myCar = new Car;
?>
Efter att bilen skapats kan man komma åt
dess egenskaper. Åtkomst till dem sker
via pilen ->. Låt oss ställa in
egenskaperna för vårt objekt:
<?php
$myCar = new Car; // beordrar fabriken att tillverka en bil
// Ställ in objektets egenskaper:
$myCar->color = 'red'; // målar i röd färg
$myCar->fuel = 50; // fyller på bränsle
?>
Klart, vår bil är skapad, målad och tankad. Nu kan vi ge den kommandon via denna bils metoder.
Åtkomst till metoder sker också via pilen, men, till skillnad från egenskaper, följer man namnet på metoden med runda parenteser. Låt oss ge kommandon till vårt objekt:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>