*   >> Lectura Educación Artículos >> tech >> diseño web

Php - Pasar por referencia, A Different Approach

ke';} $ myArray = array ('Jane', 'John', 'Joey'); addAName ($ myArray); print_r ($ myArray); //Jake es ahora parte del club!

No es eso increíble? Sólo añadiendo el ampersand al nombre de variable, la función sabe ahora que trabajar en la variable real en lugar de una copia que se desecha al final del ciclo de vida de la función. Obviamente, este ejemplo es meramente eso - un ejemplo, no es demasiado útil, pero, si está ejecutando varias acciones en un solo artículo (en particular una matriz) es mucho más fácil, y más limpia, a pasar el artículo como el artículo real

>

Una advertencia sin embargo, no se trata de pasar una referencia a una función que no se lo esperaba, ya que producirá un 'pase tiempo de llamada por referencia' error:

 //esto es No allowedfunction someUnsuspectingFunction ($ array) //esta espera una copia {$ array [] = '5';} $ myArray = array ('1', '2', '3', '4'); someUnsuspectingFunction (& $ myArray); //Esto lanzará un exceptionprint_r ($ myArray); 

El problema aquí (alerta empollón) es que la realidad y los medios dame la 'dirección' de una variable de manipular.

Así que, cuando lo llamamos la forma correcta (función func (& $ var) {}), la función sabe que va a obtener una dirección en la memoria, y sabe manipular el objeto en ese lugar. Si tratamos de usar el símbolo de unión al llamar una función, la forma incorrecta (func (& $ myVar);), estamos pasando la dirección de memoria real de la variable a la función, que está a la espera de una matriz, no es una dirección de memoria!

Por lo tanto, mientras que un poco confuso, es muy ingenioso y una habilidad muy útil para tener bajo su cinturón de programación!

Esto es todo por ahora!


Page   <<  [1] [2] 
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.