8. Creando funciones en PHP
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");
```php
Una función matemática que devolviera el resultado de elevar un número al cubo podría ser:
```php
// 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.