Tach!
Es ist nun mal zentrales Merkmal dieser Sprache [PHP], dass sie zwischen zwei Skriptaufrufen keine direkte Verbindung herstellt und am Skriptende alles vergisst.
Ist das Merkmal von PHP oder ist es nicht eher DAS Merkmal von HTTP und zustandslosen Client-Server-Anwendungen?
Sowohl als auch. Es gibt jedoch auch Client-Server-Anwendungen, die nicht komplett zustandslos sind.
Ich stelle mir vor, dass es mit C, C++, Pascal, Perl, usw. nicht anders ist.
ASP.NET-Anwendungen sind zum Beispiel nicht nur einzelne Scripte. Diese Anwendungen sind zumindest über einen längeren Zeitraum aktiv und haben globale Teile, die permanent vorhanden sind. (Stichwörter für Eigenrecherche, wenn es interessiert: Application Life Cyle und Page Life Cycle)
Meines Wissens findet man teilweise Permanenz auch bei Java und mod_python.
PHP als Modul des Apachen hält zumindest schon mal das ganze Runtime-System parat. Das muss nicht bei jedem Request neu geladen werden. Darum dürfte es auch sinnvoll sein, konsequent PHP-eigene Funktionen zu benutzen, sofern dies sinnvoll ist, und diese nicht erst in der Interpreterschicht selber nachzubauen.
Der Geschwindigkeitsunterschied zwischen internen und nachgebauten Funktionen ergibt sich generell auch bei einer CGI-Nutzung. Der Unterschied zwischen CGI und Modul ist die Start-Verzögerung. Es ist auch nicht so, dass PHP-Extensions nur bei Bedarf nachgeladen werden würden. Das ergäbe vielleicht wirklich einen Laufzeit-Unterschied.
Und außerdem sollte man auch konsequent Daten (persistent) - Daten (transient) und Code trennen. Das ist nun leider wieder ein Argument gegen OOP, so wie PHP bisher damit umgeht.
Achwas, ASP.NET bekommt das auch wunderbar objektorientiert hin.
dedlfix.