Leyendo diferente documentación podemos ver que tenemos variables globales y locales. Las globales se declaran fuera de una función y tiene aplicación en cualquier lugar fuera de una función. Las variables locales se declaran dentro de una función y sólo tienen actividad dentro de esa función.
Podemos ver el siguiente ejemplo:
<?php $a=15; // variable global function prueba() { $b=74; // variable global echo "Dentro de la función la variable a tiene un valor de $a y la variable b tiene un valor de $b"; } prueba(); echo "<br>"; echo "Fuera de la función la variable a tiene un valor de $a y la variable b tiene un valor de $b"; ?>
como vemos en el resultado:
Dentro de la función la variable a tiene un valor de y la variable b tiene un valor de 74
Fuera de la función la variable a tiene un valor de 15 y la variable b tiene un valor de
En resumen, la variable global no actúa dentro de una función y la variable local no actúa fuera de la función donde fue declarada.
Para conseguir que una variable global actúe dentro de una función hay que declararla en la función precedida de global o bien llamarla así: $GLOBALS[‘variable’]. Al hacer esto estas variables actúan de forma global y en la función en la que hemos declarado que es global. Esto lo podemos ver en los siguientes ejemplos:
Con global:
<?php $a=15; // variable global $b=74; // variable global function prueba2() { global $a,$b; $b=$a+$b; } prueba2(); echo $b; // obtenemos 89 ?>
Con $GLOBALS[‘variable’]:
<?php $a=15; // variable global $b=74; // variable global function prueba3() { $GLOBALS['b']=$GLOBALS['a']+$GLOBALS['b']; } prueba3(); echo $b; // obtenemos 89 ?>