dedlfix: PDO Exception in eigenem Namespace

Beitrag lesen

Tach!

Der PHP-Compiler ist nicht für das Auflösen von Namen zuständig. Bei einer dynamischen Sprache ergeben sich die Auflösungsmöglichkeiten unter Umständen erst im Verlaufe des Scripts. Das kann nicht schon zur Compile-Zeit erfolgen.

Ok, dann arbeitet der PHP-Compiler hier deutlich anders als ich das von Java gewohnt bin, da wird nicht erst zur Runtime festgestellt, ob die Klassen etc. zugänglich sind.

Wir haben es ja bei PHP auch nicht mit einem kompilierenden System im klassischen Sinne zu tun. Man könnte es im Prinzip als interpretatives System betrachten, und das wäre nicht ganz verkehrt. Der Compiler ist hier nur ein Bytecode-Compiler. Da man aber zur Laufzeit mit include und Co. (und auch mit eval()) Code nachladen kann, und das auch bedingt, und auch solche Konstrukte wie variable Variablen hat, kann man vor dem Start kein vollständiges Kompilat erstellen, und damit auch nicht wissen, was eingeladen werden wird und was nicht, was zur Verfügung steht und was nicht. Somit ist der Compiler nicht in der Lage, einen Find-ich-nicht-Fehler zu erzeugen.

dedlfix.