Ejercicios de Funciones y reutilización de código
Función para mostrar los datos del pedido
Incluir una función en _procesar_pedido.php_ para mostrar los datos del pedido (nombre de los productos y número de unidades de cada producto) en forma de tabla.
(OPTATIVO) Modificación de la función de mostrar datos
Añadir un parámetro booleano optativo a la función anterior, llamado _mostrarResaltado_, y que por defecto tenga el valor _true_. En el caso en el que el valor de dicha variable sea _true_, se deberá mostrar el número de unidades solicitadas de cada producto en negrita.
Añadir también otro parámetro booleano optativo, llamado _mostrarMuchos_, que por defecto tenga también el valor _true_. En el caso en el que su valor sea _false_, no se deberán los detalles de los productos para los que el número de unidades solicitadas del pedido sea mayor que 10.
Procesamiento del formulario en funciones
Añadir dos nuevas funciones a _procesar_pedido.php _ para comprobar si los datos del formulario son correctos y para calcular el precio total.
(OPTATIVO) Divisas
Crear una matriz de divisas (con tres o cuatro es suficiente) en las que se almacene el nombre y su cambio con respecto al euro. Crear una función que, recibiendo como parámetro el total del pedido, nosdevuelva un array con ese mismo total expresado en cada una de las divisas definidas.
Reutilización de código
Crear un nuevo fichero llamado _funciones.inc_ donde se introducirán todas las funciones creadas durante los ejercicios anteriores. Incluir dicho fichero en _procesar_pedido.php _ para que puedan ser utilizadas normalmente.
Cabecera y pie de página
Crear dos nuevos ficheros, llamados _cabecera.inc_ y _pie.inc_, que contendrán código HTML para la cabecera y el pie de página. La cabecera mostrará el logotipo de la panadería (puedes utilizar cualquier imagen que encuentres en Internet), junto con el nombre de la misma. El pie mostrará información sobre el creador de la página (nombre, apellidos, etc.). Por último, incluir ambos ficheros en _procesar_pedido.php_. Inclúyelos en la posición correcta; ten en cuenta que el código HTML que estás creando tiene que ser parte del contenido del elemento __.
(OPTATIVO) Cabecera y pie de página del CLA
Al igual que en el ejercicio anterior, añadiremos dos archivos llamados cabecera.inc y pie.inc al proyecto del CLA de las sesiones de HTML. Dichos archivos contendrán, respectivamente, una cabecera para la página con un logotipo cualquiera y un pie de página con los datos del creador de la misma. Estos dos archivos deberán ser incluidos en todas las páginas del proyecto CLA.
(OPTATIVO) Ámbito de variables en PHP
Este ejercicio tiene como objetivo el que compruebes como funciona el ámbito de las variables en PHP. Para resolverlo debes introducir el siguiente código en un fichero PHP y responder a las preguntas que se te plantean más adelante:
<?php
define('CONSTANTE',3.1416);
// Variables globales
$globalA = 100;
$globalB = 200;
//función prueba
function prueba()
{
global $globalA;
$localA = 300;
static $localB = 400;
$localA++;
$localB++;
// Acceso desde el ámbito de la función
echo "Dentro del ámbito de la función prueba<br>";
echo "globalA = $globalA<br>";
echo "globalB = $globalB<br>";
echo "globalB = {$GLOBALS['globalB']}<br>";
echo "localA = $localA<br>";
echo "localB = $localB<br>";
echo 'CONSTANTE = '.CONSTANTE.'<br>';
}
prueba();
prueba();
// Acceso desde el ámbito de la secuencia de comandos
echo "Dentro del ámbito de la secuencia de comandos global<br>";
echo "globalA = $globalA<br>";
echo "globalB = $globalB<br>";
echo "globalB = {$GLOBALS['globalB']}<br>";
echo "localA = $localA<br>";
echo "localB = $localB<br>";
echo 'CONSTANTE = '.CONSTANTE.'<br>';
?>
- ¿Qué es lo que se visualiza en el navegador como resultado del código?
- Para cada una de las variables para las que no se muestra ningún valor, explicar por qué sucede esto.
- ¿Por qué localB vale 402 tras la segunda llamada a la función prueba?
- ¿Cuál sería la salida en el caso en el que las variables globalA y globalB fueran declaradas dentro de un fichero incluido con require()?, ¿Por qué?