Varios 1Una forma de facilitar el uso de una página con controles es situar automáticamente el cursor en el control que probablemente va a utilizar el usuario, ahorrando al usuario el tener que hacer clic en ese control. Esto se puede conseguir mediante Javascript.
Una manera de hacerlo es asignar el atributo id del control sobre el que se quiere situar el cursor automáticamente y establecer el atributo onload del elemento body con el valor document.getElementById('XYZ').focus(), donde XYZ es el id del control, como muestra el ejemplo siguiente:
| <body
onload="document.getElementById('cursor').focus()"> <form action="validar1.php"> <p>Al cargar esta página, el cursor sitúa automáticamente en la primera caja de texto:</p> <table> <tbody> <tr> <td>Usuario:</td> <td><input type="text" name="usuario" id="cursor" /></td> </tr> <tr> <td>Contraseña:</td> <td><input type="password" name="password" /></td> </tr> </tbody> </table> <p><input type="submit" value="Entrar" /></p> </form> |
Al cargar esta página, el cursor se sitúa automáticamente en la primera caja de texto:
|
print y echo son dos sentencias de PHP prácticamente equivalentes y se puede utilizar cualquiera de las dos en las mismas situaciones. Sin embargo, hay alguna diferencia entre ellas:
| <?php $titulo = "Diferencias entre print y echo"; echo "<p>", $titulo, "</p>"; print "<p>".$titulo."</p>"; ?> |
<p>Diferencias entre print y
echo</p> <p>Diferencias entre print y echo</p> |
Eso permite utilizar print en construcciones en que no se puede utilizar echo. Por ejemplo el siguiente ejemplo:
| <?php $numero = 5; print "<p>El número $numero es "; if ($numero >= 0) { print "positivo"; } else { print "negativo"; } print "</p>"; ?> |
<p>El número 5 es positivo</p> |
puede escribirse utilizando el operador ternario ? : de la siguiente manera:
| <?php $numero = 5; print "<p>El número $numero es "; ($numero >= 0) ? print "positivo" : print "negativo"; print "</p>"; ?> |
<p>El número 5 es positivo</p> |
En este caso la utilización de echo produciría un error:
| <?php $numero = 5; print "<p>El número $numero es "; ($numero >= 0) ? echo "positivo" : echo "negativo"; print "</p>"; ?> |
Parse error: parse error, unexpected T_ECHO in ejemplo.php on line 4 |
En resumen, no parece haber una razón de peso para preferir usar print en vez de echo o viceversa. Parece que la elección de uno u otro es personal y basada en la costumbre o la familiaridad con otros lenguajes o entornos en los que uno de los dos está más extendido. En estos apuntes se utiliza preferentemente print.
La función print_r($variable [, $devolver]) escribe la variable $variable de forma legible, incluso aunque se trate de una matriz.
Aunque print_r() genera espacios y saltos de línea que pueden verse en el código fuente de la página, print_r() no genera etiquetas html, por lo que el navegador no muestra esos espacios y saltos de línea.
| <?php $matriz = array('nombre' => 'Pepito', 'apellidos' => 'Conejo'); print_r($matriz); ?> |
Array ( [nombre] => Pepito [apellidos] => Conejo ) |
Para mejorar la legibilidad una solución es añadir la etiqueta <pre>, que fuerza al navegador a mostrar los espacios y saltos de línea.
| <?php $matriz = array('nombre' => 'Pepito', 'apellidos' => 'Conejo'); print '<pre>'; print_r($matriz); print '</pre>'; ?> |
Array
(
[5] => pepe
[10] => manué
)
|
Si el argumento $devolver toma el valor TRUE, print_r() no escribe nada pero devuelve el texto que se escribe cuando el argumento no está o toma el valor FALSE.
| <?php $matriz = array('nombre' => 'Pepito', 'apellidos' => 'Conejo'); $tmp = print_r($matriz); print $tmp; ?> |
Array ( [nombre] => Pepito [apellidos] => Conejo ) |