PHP $this: wat het keyword is en hoe je het gebruikt

$this hoort bij het belangrijkste en het nuttigste van objectgeoriënteerd programmeren in PHP, en tegelijk bij wat het vaakst wordt overgeslagen. Veel mensen hebben van het keyword gehoord zonder te weten hoe ze het inzetten. Dit artikel legt kort uit wat $this is en hoe het werkt.

PHP $this: wat het keyword is en hoe je het gebruikt

Inleiding

$this hoort bij het belangrijkste en het nuttigste van objectgeoriënteerd programmeren in PHP (OOP, Object Oriented Programming). En helaas ook bij wat het vaakst wordt overgeslagen. Veel mensen hebben van het keyword gehoord, maar weten niet hoe ze het moeten inzetten.

In dit artikel leg ik kort uit wat $this is en hoe het werkt. Zegt OOP je nog niets, kijk dan eerst waar het over gaat: dit artikel levert je dan meer op.

Wat is $this en hoe werkt het?

Het keyword $this geeft ons toegang tot de methodes en de properties van onze klasse. We kunnen dus van binnenuit de huidige klasse een methode aanroepen of een property uitlezen.

Laten we als voorbeeld een eenvoudige klasse Dog aanmaken. Die begeleidt ons door de volgende voorbeelden van dit bericht.

php
class Dog {

    public $name;
    public $age;
}

Om een property van onze klasse uit te lezen, gebruiken we $this zo:

php
$this->name

Het voorbeeld hierboven laat alleen zien hoe je het keyword correct gebruikt. Let erop dat de $ na de pijl wegvalt en er enkel name staat, terwijl de property als $name is gedeclareerd. Dat is het waard om te onthouden, anders zoek je een tijd naar de reden waarom je code niet loopt.

Het keyword $this en methodes

Nu zetten we $this in binnen een methode van onze klasse:

php
class Dog {

    public $name;
    public $age;

    public function intro(){

        echo 'Voici ' .$this -> name . ' et il a ' .$this -> age . 'ans.';

    }
}

Om onze functie te laten draaien, maken we zelf een object van de klasse aan, zetten we de waarden van de properties en roepen we daarna de publieke methode aan:

php
<?php
// Instantiëren
$blacky = new Dog();

// De eigenschap name toevoegen
$blacky->name = 'Toffee';

// De eigenschap age toevoegen
$blacky->age = '2 months';

En tot slot roepen we onze functie aan.

php
echo $blacky->intro();

Daarmee hebben we de properties van de klasse in onze functie gehaald. De uitvoer ziet er ongeveer zo uit:

C’est Toffee et il a 2 mois.

We kunnen vanuit een methode ook een andere methode van dezelfde klasse aanroepen met de functie $this, opnieuw via het keyword $this. Hier een kort voorbeeld waarvoor we een nieuwe klasse gebruiken.

php
class Man{
    public $name;

    public function say(){
         echo 'Bonjour ' . $this->name;     
    }

    public function hello(){
        $this->say;
    }
}

Nu maken we ons object aan, zetten we de waarden en geven we de functie terug.

php
// Het object instantiëren
$john = new Man();

// De naam toevoegen
$john->name ='john';

// De methode hello() aanroepen
echo $john->hello();

Het resultaat hoort te zijn

Bonjour John

Zo gebruik je $this in een methode en roep je er een andere methode van die klasse mee aan.

Conclusie

Al met al is het behoorlijk praktisch. Het duurt natuurlijk even voor je het vanzelf in je code zet, maar zodra je de slag te pakken hebt, gebruik je het 24 uur per dag, 7 dagen per week.

PHP

Damien Flandrin Webdeveloper sinds 2010, maker van Gekkode en Email Impact. Elk artikel wordt vóór publicatie getest op een echt project. Contact
Nieuwsbrief

Nieuwe tests, tutorials en projecten, per e-mail.

Reproduceerbare tests, geversioneerde code, gedateerde resultaten. Nooit spam.