puntero - Valor de variable global perdido dentro de func

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.

preguntado el 12 de junio de 12 a las 20:06

Parece funcionar como se esperaba: codepad.org/uBWUO2C8 -

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) -

hm.. en mi servidor obtengo NULL para var_dump($global_p)... ¿qué podría estar mal? -

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. -

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 -

1 Respuestas

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 or haz tu propia pregunta.