Ambito de las variables
El
ámbito
de
una
variable
es
el
contexto
dentro
del
que
la
variable
está
definida
.
La
mayor
parte
de
las
variables
PHP
sólo
tienen
un
ámbito
simple
.
Este
ámbito
simple
también
abarca
los
ficheros
incluidos
y
los
requeridos
.
Por
ejemplo
:
Aquí
,
la
variable
$a
dentro
del
script
incluido
b.inc
.
De
todas
formas
,
dentro
de
las
funciones
definidas
por
el
usuario
aparece
un
ámbito
local
a
la
función
.
Cualquier
variables
que
se
use
dentro
de
una
función
está
,
por
defecto
,
limitada
al
ámbito
local
de
la
función
.
Por
ejemplo
:
Este
script
no
producirá
salida
,
ya
que
la
orden
echo
utiliza
una
versión
local
de
la
variable
$a
,
a
la
que
no
se
ha
asignado
ningún
valor
en
su
ámbito
.
Puede
que
usted
note
que
hay
una
pequeña
diferencia
con
el
lenguaje
C
,
en
el
que
las
variables
globales
están
disponibles
automáticamente
dentro
de
la
función
a
menos
que
sean
expresamente
sobreescritas
por
una
definición
local
.
Esto
puede
causar
algunos
problemas
,
ya
que
la
gente
puede
cambiar
variables
globales
inadvertidamente
.
En
PHP
,
las
variables
globales
deben
ser
declaradas
globales
dentro
de
la
función
si
van
a
ser
utilizadas
dentro
de
dicha
función
.
Veamos
un
ejemplo
:
El
script
anterior
producirá
la
salida
"
3
"
.
Al
declarar
$a
y
$b
globales
dentro
de
la
función
,
todas
las
referencias
a
tales
variables
se
referirán
a
la
versión
global
.
No
hay
límite
al
número
de
variables
globales
que
se
pueden
manipular
dentro
de
una
función
.
Un
segundo
método
para
acceder
a
las
variables
desde
un
ámbito
global
es
usando
el
array
$GLOBALS
propio
de
PHP3
.
El
ejemplo
anterior
se
puede
reescribir
así
:
El
array
$GLOBALS
es
un
array
asociativo
con
el
nombre
de
la
variable
global
como
clave
y
los
contenidos
de
dicha
variable
como
el
valor
del
elemento
del
array
.
Otra
característica
importante
del
ámbito
de
las
variables
es
la
variable
static
.
Una
variable
estática
existe
sólo
en
el
ámbito
local
de
la
función
,
pero
no
pierde
su
valor
cuando
la
ejecución
del
programa
abandona
este
ámbito
.
Consideremos
el
siguiente
ejemplo
:
Esta
función
tiene
poca
utilidad
ya
que
cada
vez
que
es
llamada
asigna
a
$a
el
valor
0
y
representa
un
"
0
"
.
La
sentencia
$a++
,
que
incrementa
la
variable
,
no
sirve
para
nada
,
ya
que
en
cuanto
la
función
termina
la
variable
$a
desaparece
.
Para
hacer
una
función
útil
para
contar
,
que
no
pierda
la
pista
del
valor
actual
del
conteo
,
la
variable
$a
debe
declararse
como
estática
:
Ahora
,
cada
vez
que
se
llame
a
la
función
Test(
)
,
se
representará
el
valor
de
$a
y
se
incrementará
.
Las
variables
estáticas
también
proporcionan
una
forma
de
manejar
funciones
recursivas
.
Una
función
recursiva
es
la
que
se
llama
a
sí
misma
.
Se
debe
tener
cuidado
al
escribir
una
función
recursiva
,
ya
que
puede
ocurrir
que
se
llame
a
sí
misma
indefinidamente
.
Hay
que
asegurarse
de
implementar
una
forma
adecuada
de
terminar
la
recursión
.
La
siguiente
función
cuenta
recursivamente
hasta
10
,
usando
la
variable
estática
$count
para
saber
cuándo
parar
: