Cuando se crea una función y pasar parámetros al mismo en PHP : Hypertext Preprocessor , es necesario comprender el alcance de los parámetros. PHP obliga a declarar específicamente al permitir a una función modificar el valor global de un parámetro. En PHP versión 5 , el modelo de objetos afecta a cómo se trata a los objetos cuando se pasan como parámetros a funciones. Mientras que el modelo se ajusta a la norma general de PHP, que proporciona una función que le permite manipular los valores globales de los miembros de objetos sin declarar específicamente esto en la definición de la función . Parámetro Alcance
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.