Estoy algo confundido acerca de cómo funciona el código siguiente. En mi cabeza, me estoy imaginando que cada bloque php se ejecuta como un todo y se procesa en HTML. El hecho de que el primer bloque esté incompleto con una abrazadera colgante no funciona bien con la forma en que imagino que PHP funcionará. ¿Qué hace el módulo PHP cuando llega a una etiqueta de cierre de PHP? ¿Cómo es que el código dentro de las etiquetas PHP puede afectar la salida del texto plano fuera de las etiquetas PHP, es decir, solo condicionalmente la salida del formulario?PHP condicional seguido de la etiqueta de cierre
Hubiera pensado que para lograr lo siguiente habría tenido que usar una declaración de eco para repetir el formulario de forma condicional.
<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>
En realidad, es una mala comprensión meterse en la cabeza. Más como - los datos fuera de las etiquetas php no se evalúan, pero aún forman parte de todas las declaraciones de flujo de control.Tal vez –
lado a otro punto de vista escritor ma guión. Hace 10 años que he creado un entorno de programación PHP-como, y esto es exactamente cómo se implementa el compilador/intérprete. Desde la perspectiva del compilador y escritor, esta es una muy buena comprensión de cómo funcionan las cosas. Los datos se evalúan solo en circunstancias especiales, como comillas dobles. Es realmente desagradable pensar en datos que se evalúan generalmente en lugar de solo en circunstancias especiales. – Killroy