Klassenvariablen sind nicht über die Instanz sondern über die Klasse zugänglich
Klassenvariablen in PHP werden klassenweit über das Schlüsselwort static
deklariert. Klassenvariablen in PHP sind nicht über die Instanz sondern über den Namen der Klasse als ClassName::$variable
zugänglich. Innerhalb der Klasse sind Klasenvariablen über das Schlüsselwort self::$variable
erreichbar.
class Foo{ # Deklariere eine Klassenvariable static $version = "2.0"; function __construct(){ # Zugriff auf die Klassenvariable # über das Schlüsselwort self $this->version = self::$version; } } # Zugriff auf die Klassenvariable # über den Namen der Klasse Foo::$version = "3.0"; $f = new Foo; print_r($f);
Klassenvariablen verhalten sich grundsätzlich statisch, d.h., eine Klassenvariable behält unabhängig von Instanzen ihren Inhalt klassenweit bis zur nächsten Veränderung und solange die Klasse im Hauptspeicher lebt. Eine Klassenmethode ist eine statische Methode und kann nur auf statische Variablen zugreifen, nicht jedoch auf Eigenschaften von Instanzen.
Es ist PHP-spezifisch, Klassenvariablen und auch Klassenfunktionen mit dem Schlüsselwort static
als Solche kenntlich zu machen.
Wie in manchen Perlklassen üblich, kann man auch in PHP eine Klassenvariable setzten welche das Verhalten einer Anwendung, z.B. im Fehlerfall bestimmt:
require "Scaliger.php"; Scaliger::$EXCEPTION = 1; $sca = new Scaliger(29,2,2019);
Damit wird im Fehlerfall eine Exception geworfen, z.B. wenn ein ungültiges Datum in den Konstruktor gegeben wurde.
Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. sos@rolfrost.de.