Statische Methoden und $this in OOP in PHP
Innerhalb statischer Methoden ist $this nicht verfügbar.
Dies geschieht, weil statische Methoden
außerhalb des Kontextes eines Objekts aufgerufen werden können,
einfach durch den Zugriff auf den Klassennamen.
In gewöhnlichen Methoden sind sowohl statische als auch gewöhnliche Eigenschaften und Methoden verfügbar.
Schauen wir uns Beispiele an. Beispiel für eine gewöhnliche Methode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public function method()
{
echo self::$staticProperty; // gibt 'static' aus
echo $this->usualProperty; // gibt 'usual' aus
}
}
$test = new Test;
$test->method();
?>
Beispiel für eine statische Methode:
<?php
class Test
{
public static $staticProperty = 'static';
public $usualProperty = 'usual';
public static function method()
{
echo self::$staticProperty; // gibt 'static' aus
echo $this->usualProperty; // erzeugt einen Fehler
}
}
$test = new Test;
$test::method();
?>