Hello,
Wenn du bedenkst, dass sämtlicher Text, der außerhalb der PHP-Tags steht, als "echo 'Text';" aufgefaßt wird, wirst du einsehen, dass alles ganz logisch ist.
Logik ist so eine Sache, wenn man die Freiheitsgrade und Rahmenbedingungen nicht kennt...
Das entscheidende Element ist ja wohl die öffnene Blockklammerung innerhalb eines Parser-Bereiches.
<?php bedeutet, fange hier an, den folgenden Code zu interpretiern
{ bedeutet, hier fängt ein neuer Block an, eine Unterebene zum letzten Block
?> bedeutet innerhalb der Blockklammerung, dass der folgende Code nicht mehr
interpretiert wird
<?php fange hier wieder an zu interpretieren
} gehe in die darüberliegende Programmebene zurück
?> höre wieder auf zu interpretieren
Da ein Script im Interpretationslauf immer Top-Down abgearbeitet wird, beginnend vom beim "Einsammellauf" ermittelten "Program Entry Point", kommen bestimmte Passagen eben gar nicht in den Focus des Interpreters, wenn die entsprechende Bedingung nicht erfüllt ist.
Trotzdem halte ich die Verwendung dieser Möglichkeiten (bedingtes HTML) für unprofessionell.
Selbst bei der Heredoc-Syntax, die etwas ähnliches bewirkt, geht die Übersicht oft noch verloren und außerdem funktioniert sie auch nur unter Berücksichtigung der zum OS passenden Zeilenende-Sequenz fehlerfrei.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau