16 - Funciones en PHP

La sintaxis para la definición de una función en PHP es:

function [nombre de la función]([parámetros])
{
  [algoritmo]
} 

Implementaremos una función que muestre un titulo centrado en patalla, y la llamaremos posteriormente dos veces:

<html>
<head>
  <title>Problema</title>
</head>
<body>
  <?php
  function mostrartitulo($men)
  {
    echo "<h1 style=\"text-align:center\">";
    echo $men;
    echo "</h1>";
  }

  mostrartitulo("Primer titulo");
  echo "<br>";
  mostrartitulo("Segundo segundo");

  ?>
</body>
</html> 

Para mostrar el titulo centrado utilizamos el elemento h1 de HTML y definimos un estilo centrado para el mismo.

Si vemos la función, notamos que lo más trabajoso es definir todos los elementos HTML para crear el titulo. Es importante notar que en PHP para introducir las dobles comillas dentro de un string debemos anteceder el carácter ‘\’; para introducir el carácter ‘\’ debemos escribir dos barras \\.

Las llamadas a la función las hacemos por medio de su nombre y pasamos el único parámetro que requiere:

 mostrartitulo("Primer titulo");
  echo "<br>";
  mostrartitulo("Segundo segundo"); 

Las funciones nos permiten tener un programa más ordenado y facilitan la reutilización del código.

Más adelante veremos como hacer archivos con rutinas comunes a muchas páginas.

Una función puede retornar un dato, supongamos que necesitamos una función que nos retorne el promedio de dos valores, el código sería:

<html>
<head>
  <title>Problema</title>
</head>
<body>
  <?php
  function retornarpromedio($valor1, $valor2)
  {
    $pro = $valor1 / $valor2;
    return $pro;
  }

  $v1 = 100;
  $v2 = 50;
  $p = retornarpromedio($v1, $v2);
  echo $p;
  ?>
</body>
</html> 

Cuando una función retorna un dato debemos emplear la palabra clave return seguida del valor que devuelve.

En la llamada a la función el valor retornado se almacena generalmente en una variable:

  $p = retornarpromedio($v1, $v2);
 

Si queremos que retorne más de un dato debemos emplear parámetros por referencia.

Supongamos que necesitamos ahora que una función nos retorne el cuadrado y cubo de un número:

<html>
<head>
  <title>Problema</title>
</head>
<body>
  <?php
  function cuadradocubo($valor, &$cuad, &$cub)
  {
    $cuad = $valor * $valor;
    $cub = $valor * $valor * $valor;
  }
  cuadradocubo(2, $c1, $c2);
  echo "El cuadrado de 2 es:" . $c1 . "<br>";
  echo "El cubo de 2 es:" . $c2;
  ?>
</body>
</html> 

Es decir, cuando le antecedemos el carácter ampersand al parámetro, es por referencia.

El objetivo es asignarle cierto valor al parámetro y posteriormente el dato quedará almacenado en la variable que le pasamos a la función.

function cuadradocubo($valor, &$cuad, &$cub)
  {
    $cuad = $valor * $valor;
    $cub = $valor * $valor * $valor;
  } 

El parámetro $cuad se almacena en la variable $c1 y el parámetro $cub se almacena en $c2. Es la forma más adecuada de modificar variables dentro de una función.