Variables locales y globales en PHP5

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