Raketenwissenschaftler: Doppelter Klassenaufruf

Beitrag lesen

dedlfix hat es im Vorbeigehen, wenngleich etwas verklausuliert und vor allem versteckt erklärt. Er schreibt:

Private Klassen gibt es nicht. PHP legt sie auch in dem Fall global an.

Anders als (nichtglobale) Variablen sind (in PHP) Klassen, Funktionen und Konstanten „superglobal“. Auch wenn Du diese innerhalb einer Funktion/Methode anlegst sind diese also „überall“ vorhanden (werden nach Abarbeiten der Funktion auch nicht „vergessen“) und dürfen ergo nicht nochmals angelegt werden.

Für konkrete, aus einer Klasse abgleitete und in Variablen abgelegte Objekte (samt deren Properties und Methoden) gilt das übrigens nicht.

Hint: Man kann mit function_exists( $name ), class_exists( $name ) und is_defined( $name ) prüfen, ob es das Zeug schon gibt.