Un día mas traemos el curso de programación en PHP , como ya os adelantamos el último día, hoy veremos los diferentes tipos de paso de argumentos y el ámbito de las variables.
En la parte anterior de este mismo volumen vimos como se pasaban argumentos a las funciones.
Si habéis estado programando con el tema de los argumentos y las funciones os habréis dado cuenta de que cuando pasas un argumento a una función, el argumento que has pasado, fuera de la función no modifica su valor.
Veamos un ejemplo mejor , ya que esto puede resultar algo confuso.
Esto ocurre porque estamos pasando el argumento por valor. Podemos decir que al pasar un argumento por valor, el intérprete lo que hace es crear una copia del argumento, esa copia será pasada y luego será destruída quedando el valor inicial (aunque no es así exactamente, pero no nos vamos a meter en estos temas).
Paso de argumentos por referencia
El paso de argumentos por referencia se diferencia del paso de argumentos por valor en que los cambios realizados en el argumento, persisten fuera de la función, es decir, si realizamos por ejemplo un incremento a un argumento pasado por referencia dentro de una función, fuera de esa función, lo que le has pasado por argumento seguirá incrementado.
Para pasar un argumento por referencia simplemente hay que añadir antes de él un & en la declaración de la función.
Vamos con un ejemplo para que quede mas claro.
Ámbito de las variables y uso de Globals/$GLOBALS
Como comentábamos en el anterior volumen respecto a las variables globales, aunque tengamos una variable global definida, no podemos utilizarla sin más dentro de una función. Para solucionar este pequeño inconveniente existen varias formas, vamos a ver algunas de ellas.
Uso de globals.
El uso de globals se reduce simplemente a poner dentro de una función global variable_global_a_la_que_queremos_acceder para así, tener acceso a ella como variable global.
Ejemplo:
Uso de Globals[‘variableglobal’]
Esta es otra forma de acceder a las variable globales. Se utiliza la variable superglobal Globals[] de la siguiente forma Globals[‘variableglobal’] donde variableglobal es una variable global ya definida.
Ejemplo:
Esto es todo por hoy, nos vemos en el próximo volumen.