Inleiding tot OOP in PHP
Nu gaan we ons bezighouden met het bestuderen van OOP in PHP. Laten we een voorbeeld uit het echte leven bekijken, en het dan overbrengen naar PHP.
Laten we een auto als voorbeeld nemen. Hij heeft wielen, een kleur, een carrosserietype, een cilinderinhoud en zo verder. Bovendien kan de bestuurder hem commando's geven: rijden, stoppen, rechtsaf slaan, linksaf, enzovoort.
We kunnen zeggen dat er een bepaalde klasse auto's bestaat, met gemeenschappelijke eigenschappen (ze hebben allemaal wielen en aan allemaal kunnen commando's worden gegeven).
Een specifieke auto, die op straat staat - dat is een vertegenwoordiger van deze klasse, of, met andere woorden, een object van deze klasse. Alle objecten van deze klasse hebben eigenschappen: aantal wielen, kleur, carrosserietype en methoden: rijden, stoppen, rechtsaf slaan, linksaf.
Met andere woorden, de klasse zelf is een blauwdruk, volgens welke in de fabriek auto's worden gemaakt. Een object is de auto zelf, gemaakt volgens deze blauwdrukken.
In PHP wordt een klasse gemaakt met het sleutelwoord
class, gevolgd door de naam
van deze klasse. Laten we een klasse Car maken:
<?php
class Car
{
// hier code, dus de PHP-blauwdruk van de auto
}
?>
Laten we nu in onze blauwdruk specificeren dat elke auto, gemaakt volgens deze blauwdruk, een eigenschap voor kleur en een eigenschap voor de hoeveelheid brandstof zal hebben.
Om dit te doen, schrijven we binnen de klasse de eigenschap
$color en de eigenschap $fuel:
<?php
class Car
{
// Definieer eigenschappen (in wezen variabelen van de klasse):
public $color; // kleur van de auto
public $fuel; // hoeveelheid brandstof
}
?>
Laten we nu de methoden van onze klasse maken.
In PHP worden methoden, vergelijkbaar met gewone functies, gedeclareerd
met het sleutelwoord function,
waarvoor het sleutelwoord
public wordt geschreven.
Zoals eerder vermeld, kan onze auto rijden, kan hij draaien, kan hij stoppen. Laten we de bijbehorende methoden in onze klasse maken:
<?php
class Car
{
public $color; // kleur van de auto
public $fuel; // hoeveelheid brandstof
// Commando rijden:
public function go()
{
// een of andere PHP code
}
// Commando draaien:
public function turn()
{
// een of andere PHP code
}
// Commando stoppen:
public function stop()
{
// een of andere PHP code
}
}
?>
We hebben de blauwdruk van onze auto gemaakt. Nu moeten we naar de fabriek gaan en een object van deze klasse maken (dus een specifieke auto).
In PHP wordt dit gedaan met het sleutelwoord
new, waarna de klassenaam wordt geschreven:
<?php
new Car;
?>
Echter, als je alleen maar een object van de klasse maakt - leidt dat nergens toe (het is hetzelfde als, bijvoorbeeld, een array declareren en deze nergens opslaan). We hebben een variabele nodig om dit object op te slaan.
Laten we deze variabele $myCar noemen
- laten we het door ons gemaakte object erin opslaan:
<?php
$myCar = new Car;
?>
Na het maken van de auto kan je zijn
eigenschappen benaderen. De toegang daartoe gebeurt
via het pijltje ->. Laten we de
eigenschappen van ons object instellen:
<?php
$myCar = new Car; // beveel de fabriek om een auto te maken
// Stel de eigenschappen van het object in:
$myCar->color = 'red'; // schilder hem rood
$myCar->fuel = 50; // tank brandstof
?>
Klaar, onze auto is gemaakt, geverfd en getankt. Nu kunnen we hem commando's geven via de methoden van deze auto.
De toegang tot methoden gebeurt ook via het pijltje, maar, in tegenstelling tot een eigenschap, volgen na de methodenaam ronde haakjes. Laten we commando's geven aan ons object:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>