Ich habe den folgenden PHP- Code ausgeführt:
<?php
</script>
?>
Es gab keine Analysefehler und die Ausgabe war " ?>
" ( Beispiel ).
In ähnlichen Fällen wird ein Analysefehler angezeigt:
<?php
</div>
?>
Analysefehler: Syntaxfehler, unerwartetes '<' in ...
Warum gibt es nicht <?php </script> ?>
den gleichen Fehler?
php
syntax
parse-error
Irfan
quelle
quelle
Antworten:
Dies muss daran liegen, dass es verschiedene Möglichkeiten gibt, einen PHP-Codeblock zu starten :
<? ... ?>
(bekannt alsshort_open_tag
)<?php ... ?>
(der Standard wirklich)<script language="php"> ... </script>
(nicht empfohlen)<% ... %>
(veraltetes und entferntes ASP-Tag nach 5.3.0)Anscheinend können Sie einen PHP-Block auf die eine und auf die andere Weise öffnen. Wusste das nicht.
In Ihrem Code haben Sie den Block mit geöffnet,
<?
aber PHP erkennt, dass es</script>
näher ist. Was passiert ist, war:quelle
<script language="php">
nicht empfohlen wird.short_open_tag
Richtlinie etwas geändert hat . In PHP 5.4 benötigt<?=
kurz für<?php echo
nicht mehr dasshort_open_tag
. Das Wechseln zwischen Systemen, wo<?=
verfügbar und nicht verfügbar waren, hat mich immer frustriert. php.net/manual/en/ini.core.php#ini.short-open-tag<?php ... ?>
: php.net/manual/en/language.basic-syntax.phpmode.phpIn PHP können Sie das
script
Tag verwenden, um einen PHP-Block zu öffnen.So können Sie verwenden
In Ihrem Beispiel haben Sie also das normale offene Tag
<?php
mit dem schließenden Tag gemischt</script>
. Der Parser geht also davon aus, dass der gesamte Text nach dem schließenden Skript-Tag normal istHTML
.Lesen Sie mehr in Escaping from HTML .
quelle