Cuando se pasa una variable a una función en PHP y la función modifica el valor de la variable, no tiene ningún efecto sobre el valor de la variable fuera del ámbito de la función. Para permitir a una función modificar el valor de una variable , debe declarar expresamente esta intención con el prefijo del nombre de variable con un signo de la definición de función . Por ejemplo :
función
modify_param , (& param) { }
Valor o referencia
Una función no puede modificar el valor de una variable fuera su propio ámbito , porque la variable de PHP pasa por valor. Se crea una copia del valor de la variable y pasa la copia a la función. Cualquier cambio en ese valor sólo afectan a la copia local. Cuando se pasa por referencia utilizando el signo en la definición de la función , PHP pasa un puntero al espacio de direcciones de memoria que contiene el valor de la variable. Las operaciones en la variable se realizaron a continuación contra el valor global de la variable , no una copia de su valor.
Pasar objetos
Cuando se pasa un objeto como parámetro a una función, PHP todavía pasa el objeto de valor, sino que pasa a otro tipo de valor . Una copia de un identificador de objetos , o identificador , se pasa a la función . El identificador de objeto permite que la función de encontrar el espacio de direcciones de memoria donde se almacenan los valores de los miembros de objeto . Esto significa que los miembros de un objeto realmente se pasan por referencia . Se pasan las operaciones que utilizan las propiedades de un objeto y los métodos de manipular el espacio de direcciones de memoria de los miembros y cambiar sus valores universales .
Objeto Handle Copia
No todos los objetos en PHP por referencia, a pesar de los cambios en los miembros del objeto afecta a los valores globales. Una copia de la manija objeto se pasa a una función . Si una función hace una asignación que cambia el objeto de manejar en sí , que el cambio no modifica el objeto de manejar ya que se pasa por valor . Para permitir a una función modificar el identificador del objeto, debe pasar el objeto por referencia, tal como lo haría con cualquier otra variable de PHP.