PHP - Problema con variable....

 
Vista:

Problema con variable....

Publicado por Martin (3 intervenciones) el 12/12/2007 20:01:14
Hola, tengo un script que se llama asi mismo, por cada llamada pregunto, mediante isset, si tal o cual valor esta seteado para saber que hacer con el valor segun sea el caso. Tengo problemas al intentar obtener los datos de una variable cuando los paso de un isset a otro. Cuando lo recibo por primera vez guardo el valor en otra variable, pero en el siguiente isset ese valor desaparece, la variable queda en blanco. Cuado la recibo lo hago por medio del $_post. Mediante un echo corrobore de que la variable si recibe el valor pero nose por que en el siguiente isset lo blanquea. Tendre mal la logica del programa o entendi mal el funcionamiento de varible. Pense que si doy valores a una variable estos valores no cambian hasta que vuelva a usar la variable, al parecer no es asi. Dejo un pequeño script para ilustrar un poco mas.

$nombre="hola";
$archivo_nombre= $_FILES["archivo"]["name"];
if(!($archivo_nombre==''))
$nombre=$archivo_nombre;

en el primer isset muestra
HOLA
en el segundo isset muestra
JOSE
en el tercer isset muestra
HOLA

En el if condiciono para que si la variable archivo_nombre esta en blanco no cambie el valor. Y jose es el valor que tiene que tomar en el segundo isset.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con variable....

Publicado por Martin (3 intervenciones) el 12/12/2007 20:18:11
Este ejemplo

$archivo_nombre= $_FILES["archivo"]["name"];
if(!($archivo_nombre==''))
$nombre=$archivo_nombre;
echo $nombre."nada";

Produce:

en el primer isset muestra
nada
en el segundo isset muestra
JOSE.nada
en el tercer isset muestra
nada

Creo que estoy entendiendo en que esta fallando. En las paginas recursivas el script tiene que leerse como si fuera la primera vez en cada instancia que necesite osea tiene que hacer un bucle de acuerdo a la condicion que nosotros necesitemos. Si asi, eso explica por que la variable se "blanquea". Ademas la solucion estaria en enviar ese parametro mediante un formulario. Puede que este en lo cierto o estoy delirando. Opinen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable....

Publicado por Diego Romero (1450 intervenciones) el 13/12/2007 07:45:10
No entiendo. Hablas de isset pero en el código no hay ningún "isset". Esto:

if(!($archivo_nombre==''))

es preguntar si la variable está vacía que no es lo mismo que preguntar si está "seteada" (creada).

Además en el trozo de código que has posteado hay un serio error de sintaxis: al if le faltan las llaves.

Pero fuera de todo esto, creo entender cuál es el problema de fondo que te ha traído hasta aquí. Creo que has asumido que cuando llamas recursivamente a un script PHP éste mantiene el valor de las variables que se le asignaron en la ejecución anterior, lo cual es falso. Cuando un script ejecuta otro script, este segundo script se ejecuta "nuevecito" y no importa que ese segundo script es el mismo que el primero, siempre se ejecuta como si fuera la primera vez.

Si estoy en lo correcto respecto de lo que has asumido, entonces te diré que confundiste recursividad con código reentrante. Técnicamente un código reentrante es aquél que se instancia una sola vez y esa misma instancia está en ejecución dos o más veces al mismo tiempo. En la recursividad el código recursivo se instancia más de una vez pero cada instancia se ejecuta por separado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable....

Publicado por Martin (4 intervenciones) el 13/12/2007 20:20:30
Ok, aclarado. El scrip es un ejemplo a la apuradas nada mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar