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:

Test.php<?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:

Test.php<?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();
?>