Tecnología

Inicio

PHP Referencias vs. Los mangos de objetos

Cuando se crea una función y pasar parámetros a ella en PHP: Hypertext Preprocessor, debe comprender el alcance de los parámetros. PHP obliga a declarar específicamente cuando para permitir a una función modificar el valor global de un parámetro. En la versión de PHP 5, el modelo de objetos afecta a cómo los objetos se tratan cuando se pasa como parámetros a funciones. Mientras que el modelo se ajusta al estándar de PHP en general, 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 función.

Ámbito de parámetros

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 una función para modificar el valor de una variable, debe declarar específicamente esta intención con el prefijo del nombre de la variable con un símbolo de unión en la definición de función. Por ejemplo:

función modify_param, (y param) {
}

Valor o referencia

Una función no puede modificar el valor de una variable fuera de su alcance debido a que PHP pasa la variable por valor. Se crea una copia del valor de la variable y la copia pasa a la función. Cualquier cambio en el valor que afectan sólo a la copia local. Cuando se pasa por referencia usando el símbolo de unión en la definición de función, PHP pasa un puntero al espacio de direcciones de memoria que contiene el valor de la variable. Las operaciones en la variable A continuación se llevaron a cabo contra el valor global de la variable, no una copia de su valor.

pasar Objetos

Cuando se pasa un objeto como un parámetro a una función, PHP todavía pasa el objeto de valor, sino que pasa a un tipo diferente de valor. Una copia de un identificador de objeto, o identificador, se pasa a la función. El identificador de objeto permite que la función para 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 en realidad son pasados ​​por referencia. Operaciones que utilizan las propiedades y métodos de un objeto manipulan el espacio de direcciones de memoria de los miembros y cambiar sus valores globales.

Manejo de Objetos de copia

No todos los objetos en PHP se pasan por referencia, a pesar de los cambios en los miembros de objetos afectan a los valores globales. Una copia del mango objeto se pasa a una función. Si una función realiza una tarea que cambia el objeto de tratar ella misma, que el cambio no modifica el identificador de objeto, ya que se pasa por valor. Para permitir a una función modificar el mango del objeto, debe pasar el objeto por referencia, tal como lo haría con cualquier otra variable en PHP.