Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/07/2009, 14:09
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: porque pasa esto? :S

Cita:
Iniciado por argy Ver Mensaje
y además que una variable que se declara dentro de un ciclo termina cuando el ciclo(valga la redundancia ) termina, es decir que la variable existe sólo dentro del ciclo
No, esto no aplica para php, el ámbito de variables de php sólo se restringe para los bloques de función, no para los ciclos, como resultado toda variable declarada dentro de un ciclo puede accederse fuera de éste, caso contrario de las variables superglobales, que tienen ámbito en todo el script.

En cambio si declaras una variable en el script, en las funciones del mismo script no tendrán acceso a la variable, sino que la re-declararán, a menos que se utilice la palabra global:

Código PHP:
$mivariable="valor principal";

function 
metodouno(){
    echo 
'uno:'.$mivariable//no imprimirá NADA
}

function 
metododos(){
    global 
$mivariable;
    echo 
'dos:'.$mivariable//imprimirá "valor principal"
}

metodouno();
metododos(); 
esto ocurre porque php no requiere la declaración explícita de variables y no tiene restricción de tipos (sólo PHP5 al paso de parámetros de clases, pero no una restricción de tipos completa)

Última edición por maycolalvarez; 16/07/2009 a las 14:17