INICIO

CREAR UNA FUNCIÓN CON PHP

Programar significa generar fragmentos de código que realicen una serie de actividades ordenadas y estructuradas de manera lógica. En eso estamos de acuerdo.

Cuando programamos algo extenso, hay partes funcionales de tareas que se repiten una y otra vez. Por ejemplo, necesitamos mostrar la información de un usuario a partir de su id almacenado en la base de datos. Lo que hacemos es consultar a la base de datos para extraer la información del usuario y luego imprimirlo/mostrarlo en pantalla.

Si tuviésemos que mostrar una lista de doscientos usuarios, ¿qué hacemos? ¿Repetir la consulta doscientas veces? Pues podría ser, pero no. Escribimos una función que lo haga, y luego invocamos/llamamos/ejecutamos esa función tantas veces como sea necesario.

Cómo hacer una función en PHP

Te muestro un ejemplo y te explico.

function info_usuario($id){
  //Buscamos el usuario con ID = $id y sacamos los valores $nombre y $edad.
  echo '<p>Usuario con nombre '.$nombre.' y edad '.$edad.'</p>';
}

FUNCTION NOMBRE()

Observamos que se empieza con la palabra function, de función. Y seguimos con el nombre de la función, que es el que nosotros queramos ponerle.

PARÁMETROS

Seguidamente, entre paréntesis, escribiremos nombres de variables, que son los parámetros de la función. Un parámetro es un valor que podemos meter dentro de la función, para usarlo. En este caso estamos metiendo/pasando el parámetro $id, que contiene el id del usuario del que queremos sacar la información.

Nota: Podemos usar cuantos parámetros queramos, separados por coma. También podemos tener cero parámetros. Por ejemplo function no_necesito_parametros(){…};

ACCIONES

La acción o acciones de la función se escriben entre {corchetes}. Esto sigue siendo PHP normal de toda la vida, pero que está dentro de la función, y que podemos llamar cuantas veces queramos a partir de un nombre. ¿Perfecto, no?

¿Cómo llamar una función?

Hasta ahora hemos definido la función, pero eso no sirve para nada si no hacemos nada con ella. Para que la función funcione, tenemos que invocarla. Invocar una función significa llamarla, ejecutarla, hacer que realice las tareas que hemos definido.

Llamar una función es tan fácil como escribir su nombre y entre paréntesis establecer un valor para cada parámetro.

Por ejemplo, si quiero usar la función para extraer información del usuario número 4:

info_usuario(4);

Esto sería equivalente a ejecutar directamente el código de acción de la función sustituyendo el parámetro id por 4. Obviamente hacer una función para usarla una sola vez, es una pérdida de tiempo. Pero si en nuestro caso tenemos una lista de cinco usuarios en una matriz, y queremos mostrar información de todos ellos, sería tan fácil como hacer lo siguiente:

$USUARIOS=array(1,3,5,7,8);
foreach($USUARIOS as $usuario){
info_usuario($usuario);
}

De esta forma estaríamos mostrando la información de 5 usuarios diferentes usando el mismo trozo de código para todos. En cada iteración sobre la matriz $USUARIOS, estamos pasando a la función el id del usuario, para que esta se ejecute.

Función con varios parámetros en PHP

Ahora vamos a ver un ejemplo de una función con varios parámetros.

Además uno de los parámetros será opcional y tendrá un valor por defecto.

function cocinar($caliente,$ingredientes,$parallevar=false){
   
  echo '<h1>Temperatura</h1>';

  if(true==$caliente){
  echo 'Es comida caliente';
  }else{
  echo 'Es comida fría';
  }

  echo '<h1>Ingredientes:</h1>';
  foreach($ingredientes as $v){
  echo $v.'<br>';
  }

  echo '<h1>¿Para llevar?</h1>';
  if(true==$parallevar){
  echo 'Sí';
  }else{
  echo 'No';
  }

}

Esta función recoge tres parámetros. El último tiene un valor por defecto. Este valor es el que toma el parámetro su al llamar la función no ponemos ninguno en su posición. Por ejemplo:

Para cocinar() una comida caliente que NO es para llevar, podemos llamar a la función así:

$mi_matriz=array('Ajo','Cebollas','Verduras verdes','Salmón');
cocinar(true,$mi_matriz);

Si, por el contrario, quisiéramos la misma comida pero con Modo Para llevar activado:

$mi_matriz=array('Ajo','Cebollas','Verduras verdes','Salmón');
cocinar(true,$mi_matriz,true);

Saludos.