8. Creando funciones en PHP
Curso: Introducción a PHP
8. Creando funciones en PHP
Hemos visto cómo usar algunas de las funciones existentes en PHP, y que nos permiten hacer cosas como convertir un texto a mayúsculas, generar un número al azar u obtener la fecha/hora actual.
Vamos a ver cómo crear nuestras propias funciones, algo que puede tener varios motivos interesantes:
- Evitar que se repitan trozos de programa: podremos agrupar varias órdenes en una sola.
- Por otra parte, esto debería ayudar a que nuestro programa sea más legible. Algo como "obtenerArticulo" puede resultar mucho más legible que una serie de 10 órdenes escritas en inglés y que manejan varias variables...
- Además, esto permitiría repartir el trabajo entre varias personas con mucha más facilidad, e incluso reutilizar el trabajo más adelante, aunque veremos formas más eficientes.
En PHP, el formato general para definir una función será este:
function nombre_de_funcion (parametro1, parametro2...) { orden1; orden2; orden3; ... return resultado; }
(Hay que recordar que "parametro1", "parametro2" y "resultado" normalmente serán variables, y en ese caso deberían empezar con el símbolo $)
Como primer ejemplo, podríamos crear una función que escriba un título a partir de un cierto texto, convirtiéndolo a mayúsculas salvo el comienzo de cada palabra, así:
// function01.php - Primer ejemplo de función function escribirTitulo($texto) { echo "<h1>". ucwords(strtolower($texto)) . "</h1>"; } escribirTitulo("hola");
Una función matemática que devolviera el resultado de elevar un número al cubo podría ser:
// function02.php - Función que devuelve un valor function cubo($numero) { $resultado = $numero * $numero * $numero; return $resultado; } echo cubo(4);
Si queremos modificar el valor de un parámetro, debemos preceder su nombre con el símbolo "&" (es lo que se conoce como "pasar el parámetro por referencia"; lo opuesto, que hemos hecho en los dos ejemplos anteriores, es "pasar el parámetro por valor"), así:
<html> <body> Bienvenido!<br> <?php // function03.php - Modificando un parámetro function incrementa (&$variable) { $variable++; } $a=5; echo "a vale ", $a, "<br />"; incrementa($a); echo "Ahora a vale ", $a, "<br />"; // Ahora $a vale 6 ?> </body> </html>
(Esto puede ser casi imprescindible en ciertas circunstancias, como por ejemplo cuando una función deba devolver más de un valor).
Ejercicios propuestos
- 8.1: Crea una función que reciba un texto y lo escriba separando cada par de letras con un espacio. Las letras impares (primera, tercera, etc.) deben estar en negrita, pero las pares no.
- 8.2: Crea una función que reciba como parámetros dos números y cree una tabla HTML que tenga tantas filas como indique el primer número y tantas columnas como indique el segundo parámetro.
- 8.3: Crea una función que calcule (y devuelva) la superficie de un triángulo, a partir de su ancho y su alto.
- 8.4: Crea una función "esCorreoValido", que devuelva "true" si el texto que se le indique como parámetro parece un correo válido y "false" en caso contrario. Aplícala a una página que muestre un formulario en el que el usuario debe introducir su correo electrónico y se le responderá si es válido o no.
Actualizado el: 13-12-2013 00:20