Temario del Tutorial18 - 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 \\.

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.



Problema resuelto.

Copiar el contenido de este cuadro de texto al NotePad++ y grabarlo en la carpeta c:\wamp\www con un nombre con extensión php (si hay varios cuadros de texto grabar cada uno en un archivo distinto).
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear: http://localhost/pagina1.php (o el nombre del archivo que le dió)

pagina1.php

Ejecutar ejemplo

Problema propuesto.

Confeccionar un formulario que solicite la carga del nombre de usuario y su clave en dos oportunidades. En la página que se procesan los datos del formulario implementar una función que imprima un mensaje si las dos claves ingresadas son distintas.

Solución
pagina1.php

Ejecutar ejemplo
pagina2.php

Retornar