M
Mr. Snoot
Gast
Hio,
eigentlich dachte ich mir, der PHP-Code wird so, wie er vorliegt abgearbeitet. D.h. der Parser geht Zeile für Zeile durch den Code und trifft bspw. auf eine if-Anweisung. Dort überprüft er dann die Bedingung und führt Code nur aus, wo die Bedingung eben erfüllt ist. Doch tatsächlich verhält es sich so, dass der Parser auch Code-Teile anschaut, die eigentlich gar nicht eintreten (also bspw. eine nicht erfüllte Bedingung).
Man hat z.B. folgenden Code:
Nun wird das Script einen Fehler bzgl. <fehlerhafter Code> ausspucken, obwohl der else-Fall hier ja gar nicht eintreten kann.
Das ist einerseits natürlich schön, weil man so Fehler findet. Aber ist es auf der anderen Seite nicht mitunter höchst inperformant?
Denn der Parser klappert ja offenbar in jedem Fall den kompletten Code ab, und das kann ja u.U. ein wahnsinnig langes Script sein, welches aber wegen einer if-Anweisung gar nicht ausgeführt werden muss. Oder passiert das einfach so schnell, dass es in jedem Fall egal ist?
eigentlich dachte ich mir, der PHP-Code wird so, wie er vorliegt abgearbeitet. D.h. der Parser geht Zeile für Zeile durch den Code und trifft bspw. auf eine if-Anweisung. Dort überprüft er dann die Bedingung und führt Code nur aus, wo die Bedingung eben erfüllt ist. Doch tatsächlich verhält es sich so, dass der Parser auch Code-Teile anschaut, die eigentlich gar nicht eintreten (also bspw. eine nicht erfüllte Bedingung).
Man hat z.B. folgenden Code:
PHP:
<?php
$i = 1;
if($i == 1)
{
# irgendwas
}
else
{
<fehlerhafter Code>
}
?>
Das ist einerseits natürlich schön, weil man so Fehler findet. Aber ist es auf der anderen Seite nicht mitunter höchst inperformant?
Denn der Parser klappert ja offenbar in jedem Fall den kompletten Code ab, und das kann ja u.U. ein wahnsinnig langes Script sein, welches aber wegen einer if-Anweisung gar nicht ausgeführt werden muss. Oder passiert das einfach so schnell, dass es in jedem Fall egal ist?