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é?

results matching ""

    No results matching ""