PHP parst ja jedes Dokument komplett. Das bedeutet, auch wenn ich ein aufwendiges Script habe mit unzähligen Funktionen die nur selten und bei bestimmten Ereignissen ausgelöst werden, parst php komplett. Genauso mit den vielleicht unzähligen Includefiles und deren Inhalt, was zb. Variabelndefinierungen sind.
Ist das eigentlich sinnvoll?
Das ist nicht nur sinnvoll, sondern muss so sein, weil du in PHP jedes Element benutzen kannst, bevor es deklariert wurde. Folgender Code funktioniert beispielsweise:
10 eins();
20
30 function eins() {
40 echo "eins";
50 }
Die Funktion eins() wird in Zeile 10 aufgerufen, noch bevor der Funktionskörper in Zeile 30 erscheint. Das ist nur möglich, weil der Interpreter zuerst den kompletten Code einliest und erst im Anschluss mit der Ausführung beginnt.
Ob dieses Verhalten nun sonderlich schlau ist, lassen wir mal dahingestellt (nur soviel: es kann gute Gründe haben, nicht umsonst gibt es bei anderen Sprachen sogenannte Vorwärtsdeklarationen), weil PHP sowieso in keinster Weise ein Beispiel für eine durchdachte Programmiersprache darstellt, sondern ganz im Gegenteil in vielfacher Hinsicht zeigt, wie man es auf keinen Fall machen sollte.
Ich kann mir vorstellen, dass ein Script was zwar ein paar tausend Zeilen mitbringt, aber je nach Aufgabe nur 100 zeilen nutzt, doch wesentlich effizienter arbeiten müsste, wenn PHP nicht alles vorher prüfen würde un dalle auch nicht benötigten Variabeln in den Speicher packt, oder sehe ich das falsch?
Nein, das siehst du vollkommen richtig. Der Optimierungsansatz wäre hier die Frage, warum ein Skript mehrere Tausend Zeilen aufweisen muss, obwohl es je Aufruf nur ein Zehntel davon nutzt.