AnteriorPosterior

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

AnteriorPosterior