Constructor __construct()
Een constructor is een speciale functie binnen een class die automatisch uitgevoerd wordt zodra de class geïnstantieerd wordt. Op deze manier kunnen we het initialiseren van een class, dus het toekennen van waarden aan properties en bijvoorbeeld het opzetten van de benodigde database verbinding, automatiseren. Met andere woorden, we hoeven geen extra method(s) meer aan te roepen om dit te doen.
In PHP5 wordt de constructor gedefinieerd door de __construct() method. Deze method is een zogenaamde 'magic method' waarover ik later in deze handleiding meer zal vertellen. Voor nu kijken we eerst naar de werking van de constructor.
Definiëren van een constructor
De constructor wordt als volgt binnen een class gedefinieerd:
Zoals je ziet is het net een normale method, alleen dan een met een speciale functie. Laten we eens naar een realistischer voorbeeld kijken:
We zien dat de setUsername() method vervangen is door de constructor, die dezelfde parameter accepteert. In de procedurele code zien we dat het toekennen van de gebruikersnaam nu direct tijdens het instantiëren van de class gedaan wordt. Het is niet meer nodig om apart setUsername() aan te roepen.
Vereiste properties afdwingen
Naast het feit dat een constructor in veel gevallen regels code kan besparen, is er nog een andere belangrijke situatie waarin de constructor een uitkomst biedt. Stel dat we een class hebben waarbinnen een databaseverbinding nodig is, dan ligt het voor de hand om deze verbinding beschikbaar te hebben zodra de class geïnstantieerd wordt. Zonder deze verbinding zou de class anders niets waard zijn.
Als voorbeeld kijken we naar de class Message_Controller die kan zorgen dat Message objecten van en naar de database gestuurd worden.
De parameter $db waar de constructor om vraagt, zal een instantie van een of andere class moeten zijn die de communicatie naar de database kan afhandelen, bijvoorbeeld PDO.
Een constructor hoeft niet per se een parameter te accepteren, binnen de method kan net zo goed een actie uitgevoerd worden waarvoor geen parameters nodig zijn of er kan zelfs helemaal niets gebeuren. In PHP is het niet verplicht om je class van een constructor te voorzien, in tegenstelling tot andere programmeertalen zoals bijvoorbeeld Java. Maar aangezien wij in PHP programmeren, zullen we hem gebruiken als we hem nodig hebben (en dat zal bijna altijd zijn).
Inhoudsopgave
- Inleiding
- Object geörienteerd denken
- Foute denkwijze
- Object georiënteerd programmeren
- Visibility
- Naamgeving
- Constructor __construct()
- Voorbeeld: HTML tabel
- Inheritance
- Static methods en properties
- Abstract classes en Interfaces
- Slotwoord en referenties