puntero - Valor de variable global perdido dentro de func
Frecuentes
Visto 348 veces
-1
por favor vea el código a continuación:
global $global_p, $global_var;
$global_var="lorem";
$global_p=&$global_var;
function myfunc () {
global $global_p, $global_var;
var_dump($global_p);
var_dump($global_var);
}
myfunc();
Salida:
para var_dump($global_p) - NULO
para var_dump($global_var) - cadena(5) "lorem"
¿Por qué var_dump($global_p) - NULL?
¿Cómo puedo mantener el valor globalmente?
Gracias de antemano.
Si paso $global_p como un parámetro de función, funciona. Pero necesito $global_p solo como variable global.
1 Respuestas
0
Estoy obteniendo la salida correcta.
cadena(5) "lorem" cadena(5) "lorem"
Respondido 14 Jul 12, 13:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php or haz tu propia pregunta.
Parece funcionar como se esperaba: codepad.org/uBWUO2C8 - Lawrence Cherone
Por lo general, pasar una variable a funciones es la mejor manera de hacerlo en lugar de variables globales (que generalmente nunca se son requeridos), especialmente cuando el primero funciona y el segundo no. Entonces, ¿por qué necesitas
$global_p
como variable global (excepto que debe coincidir con su nombre: D) - KingCrunchhm.. en mi servidor obtengo NULL para var_dump($global_p)... ¿qué podría estar mal? - ihtus
Debe deshacerse de la primera palabra clave global. Solo lo usa dentro de funciones para hacer referencia a variables globales. De hecho, puede deshacerse de toda la primera línea. - nickb
Luego debe copiar y pegar el código real que está ejecutando, porque ese código funciona en prácticamente todas las versiones de PHP lanzadas desde 4.3.2 - nickb