En el capitulo 1 vimos los conceptos de procedimientos y funciones. En php los procedimientos y funciones tienen la misma sintaxis, y se mantiene el hecho de que los procedimientos no devuelven nada y las funciones si. De igual forma que en el pseudocodigo, las funciones en php reciben parametros y los procesan. Para una mejor comunicacion, asumamos el concepto de «metodo» para referirnos a procedimientos y funciones en php.

Funciones «built-in»

El lenguaje php viene con una serie de funciones predefinidas que nos permiten llevar a cabo «acciones» sobre los parametros que les pasamos. Son muy interesantes por ejemplo las funciones de manejo de arrays. Tambien las de manejo de cadenas de textos. Estas se llaman «built-in functions», y las usamos a diario para disimiles problemas. Como mismo php puede tener funciones, tu tambien puedes crear las tuyas propias. Ademas, puedes extender este concepto para crear librerias que puedes compartir con la comunidad para que otros no tengan que reinventar la rueda. La comunidad de php es enorme, y tu tambien te puedes servir de las ideas de otros, bienvenido al software libre!

Sintaxis de las funciones en php

Te presento una funcion en php:

function sumaNumeros($n1, $n2){
    return $n1 + $n2;
}

Es muy sencillo. Comienzan con la palabra reservada «function», para indicar que estamos declarando un metodo. Seguido va el nombre de la funcion, puedes usar los nombres que quieras; eso si, debes cumplir con las mismas reglas que las variables, no comenzar con numeros, etc. Le siguen los parentesis «(» y «)». Todo lo que esta dentro de esos parentesis son los parametros de la funcion, o sea, es el lugar por donde le entra «la luz» del mundo exterior. Como hablamos anteriormente, las funciones tienen scope, y las variables que hay dentro de ellas se quedan ahi. Esto es a excepcion de los valores por referencia, que veremos mas adelante.

Le siguen las llaves «{» y «}». Estas llaves representan la «frontera» de la funcion, todo lo que este dentro de esas llaves pertenece a ella y a nadie mas, le llamamos «cuerpo de la funcion». Lo que sea que este dentro del cuerpo de la funcion, se ejecutara cuando esta sea llamada.

Dentro del cuerpo de las funciones en php

Si nos fijamos en el cuerpo, contiene una palabra reservada «return». Esta instruccion indica que vamos a «devolver» (al mundo exterior) lo que este a la derecha del «return». El return funciona como un «evaluador», pues evalua la expresio que esta a su derecha para devolverla. En este caso, se suman las variables $n1 y $n2 y ese resultado se devuelve. Pongamos un ejemplo del uso:

$r = sumaNumeros(1,5);
echo $r;

En este ejemplo estamos llamando a la funcion por su nombre, y le pasamos los parametros 1 y 5. Lo que «devuelve» la funcion, lo almacenamos en la variable $r, y posteriormente imprimimos ese resultado. Aqui se ve claramente que dentro de la funcion sumaNumeros las variables $n1 y $n2 obtienen los valores de 1 y 5 respectivamente. De ahi se suman y se devuelven con el return. La funcion no necesita saber a quien le va a devolver el resultado de su calculo, ella solo se debe preocupar por ejecutar el return, lo que este alla afuera no es de su incumbencia. Lo mismo sucede con la variable $r, a ella no le interesa como es que se suman los numeros, ni las especificaciones, solo le interesa que llamando a una funcion y pasandole los parametros 1 y 5, ella va a devolver un 6. Fijate que la asignacion funciona como si fuera sumaNumeros una variable.

Parametros por referencia

Como lo dice la palabra, le damos a la funcion parametros como referencias para que su valor este disponible fuera de la funcion sin necesidad de devolverlo. Esto vendria siendo algo parecido a un «puntero», pero no exactamente. Los parametros por referencia en aplicaciones muy sencillas no tienen ningun uso, pero es bueno que los conozcas para que tengas una herramienta mas (vas a necesitar muchas). Pongamos un ejemplo de la misma funcion, pero esta vez con una modificacion:

function sumaNumeros($n1, $n2, &$r){
    $r = $n1 + $n2;
}

Fijate como le agregamos un tercer parametro a la funcion sumaNumeros. Fijate ademas, que contiene un simbolo de «&». Lo que ha cambiado aqui es que el metodo sumaNumeros ya no es una funcion, es un procedimiento que recibe un parametro por referencia. En este parametro $r, es donde devolvemos el resultado de la suma. O sea, se llama parametro por referencia porque la variable $r en este caso es un «enlace» a la direccion de memoria donde se encuetra la verdadera $r. Para no confundirte mucho, miremos como se utilizaria esta funcion:

$r = 0;
sumaNumeros(1,5,$r);

echo $r;

Te diste cuenta? En la llamada del metodo no usamos el «&», solo lo hacemos en la declaracion del mismo. La utilidad de esto es que los parametros de referencia sirven como un «tunel» entre el scope de la funcion y el espacio exterior. De esta forma, cualquier modificacion que se le haga a dichos parametros, estaran disponibles ademas fuera de la funcion.

funciones en php

Conclusiones

Las funciones en php son de gran utilidad, porque nos permiten encapsular codigo y establecer responsabilidades para que todo sea mas organizado. En el transcurso de este capitulo vamos a ver cuan importantes son dentro de las clases y objetos, y las diferentes utilidades ya en la vida real. No existe un limite para usar funciones, sin embargo usalas sabiamente.

Sigueme!
error