Statische methoden en $this in OOP in PHP
Binnen statische methoden is $this niet beschikbaar.
Dit gebeurt omdat statische methoden
kunnen worden aangeroepen buiten de context van een object,
door simpelweg naar de klassenaam te verwijzen.
In gewone methoden zijn zowel statische, als gewone eigenschappen en methoden beschikbaar.
Laten we eens kijken naar voorbeelden. Voorbeeld van een gewone methode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // geeft 'static' weer
echo $this->usualProperty; // geeft 'usual' weer
}
}
$test = new Test;
$test->method();
?>
Voorbeeld van een statische methode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // geeft 'static' weer
echo $this->usualProperty; // geeft een foutmelding
}
}
$test = new Test;
$test::method();
?>