OOP Beginnershandleiding (PHP5)

  1. Inleiding
  2. Object geörienteerd denken
  3. Foute denkwijze
  4. Object georiënteerd programmeren
  5. Visibility
  6. Naamgeving
  7. Constructor __construct()
  8. Voorbeeld: HTML tabel
  9. Inheritance
  10. Voorbeeld: HTML tabel 2 (inheritance)
  11. Static methods en properties
  12. Abstract classes en Interfaces
  13. Magic methods
  14. Slotwoord en referenties
  15. Reacties op deze tutorial

Static methods en properties

Gebruik van het 'static' keyword zorgt ervoor dat betreffende methods of properties gebruikt kunnen worden zonder dat er een instantie van de class aangemaakt hoeft te worden. Omdat de class niet geïnstantieerd wordt, is het ook niet mogelijk om gebruik te maken van $this, aangezien deze variabele naar het huidige object verwijst. Static properties behoren dan ook tot de class zelf en niet tot een object van die class. Om properties of methods van binnenuit de class te benaderen, gebruiken we het 'self' keyword.

Een voorbeeld waarin het gebruik duidelijk wordt is deze Counter class:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php 
class Counter {
    private static 
$_count 0;
    
    public function 
__construct() {
        
self::$_count++;
    }
    
    public static function 
getCount() {
        return 
self::$_count;
    }
}

echo 
Counter::getCount().'<br />';

$x = new Counter;
echo 
Counter::getCount().'<br />';

$y = new Counter;
echo 
Counter::getCount().'<br />';

$z = new Counter;
echo 
Counter::getCount().'<br />';
?>
Code: output
1
2
3
4
0
1
2
3

We zien een static property $_count die zoals gezegd dus tot de class zelf behoort en niet tot een object van die class. Verder zien we een constructor die met behulp van het 'self' keyword telkens de waarde van $_count met 1 ophoogt zodra de class geïnstantieerd wordt. Tenslote zien we nog een static method getCount() die de huidige waarde van $_count terug geeft.

In de procedurele code wordt de Counter class tot driemaal toe geïnstantieerd, resulterende in een verhoging van $_count zoals in de output te zien is. Verder is te zien dat public static gedeclareerde members of properties ook van buiten de class benaderbaar zijn, ook zonder dat de class ooit geïnstantieerd is geweest.

Vorige Volgende