Ich bin etwas verwirrt über wie der untenstehende Code funktioniert. In meinem Kopf stelle ich mir vor, dass jeder PHP-Block als Ganzes ausgeführt und in HTML gerendert wird. Die Tatsache, dass der erste Block mit einer hängenden Klammer unvollständig ist, spielt nicht gut mit dem, wie ich mir PHP vorstelle. Was macht das PHP-Modul, wenn es zu einem schließenden PHP-Tag kommt? Wie kann es sein, dass Code innerhalb der PHP-Tags die Ausgabe von Klartext außerhalb der PHP-Tags bewirken kann, d. H. Das Formular nur bedingt ausgeben?PHP bedingte gefolgt von Closing Tag
Ich hätte gedacht, dass, um das unten zu erreichen, Sie tatsächlich eine echo-Anweisung verwenden müssten, um die Form bedingt zu echo.
<html>
<head></head>
<body>
<?php
/* if the "submit" variable does not exist, the form has not been submitted - display initial page */
if (!isset($_POST['submit'])) {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Enter your age: <input name="age" size="2">
<input type="submit" name="submit" value="Go">
</form>
<?php
}
else {
/* if the "submit" variable exists, the form has been submitted - look for and process form data */
// display result
$age = $_POST['age'];
if ($age >= 21) {
echo 'Come on in, we have alcohol and music awaiting you!';
}
else {
echo 'You're too young for this club, come back when you're a little older';
}
}
?>
</body>
</html>
Es ist irgendwie ein schlechtes Verständnis, um in den Kopf zu kommen, tatsächlich. Mehr wie - Daten außerhalb von PHP-Tags werden nicht ausgewertet, sind aber immer noch Teil aller Kontrollflussanweisungen. –
Vielleicht aus der Sicht eines Drehbuchautors. Vor 10 Jahren habe ich eine PHP-ähnliche Programmierumgebung erstellt, und genau so ist der Compiler/Interpreter implementiert. Aus der Perspektive eines Compiler-Autors ist das ein ziemlich gutes Verständnis dafür, wie die Dinge funktionieren. Daten werden nur unter besonderen Umständen wie doppelten Anführungszeichen ausgewertet. Es ist wirklich schlecht, an Daten zu denken, die eher allgemein als nur unter besonderen Umständen ausgewertet werden. – Killroy