Referencias a variables y arrays en PHP
Posted: mayo 27th, 2010 | Author: admin | Filed under: PHP | 3 Comments »PHP sigue muchas de la reglas de C, por lo que no podía faltar la referencia. Veamos un ejemplo ilustrativo, tenemos un array de elementos y queremos recorrerlo realizando modificaciones a medida que lo hacemos. La función preferida para esto es foreach, pero al hacerlo trabajamos sobre una copia de la variable, por lo que al salir del bucle nuestros cambios desaparecen.
Un primer intento podria ser este:
if (!empty($data[‘noticias’])) { foreach ($data[‘noticias’] as $each) {
$each[‘fechaactual’] = date(«Y-m-d h:i:s»);
} }
Para solucionar esto usamos una referencia:
if (!empty($data[‘noticias’])) { foreach ($data[‘noticias’] as $k=>$v) {
/* Creamos la referencia en la posición actual */
$pointer =& $data[‘noticias’][$k];/* Hacemos cambios en el arreglo original */
$pointer[‘fechaactual’] = date(«Y-m-d h:i:s»);} }
Tengo entendido que PHP no tiene punteros. O sea, una referencia no es un puntero.
Tienes toda la razon, un puntero a variable deberia contener la direccion de memoria de la variable. Corregido a referencia, gracias por el comentario 🙂
if (!empty($data[‘noticias’])) {
foreach ($data[‘noticias’] as $k=>$v) {
/* Hacemos cambios en el arreglo original */
$data[‘noticias’][$k][‘fechaactual’] = date(“Y-m-d h:i:s”);
}
}