Buscar..
Ámbito dinámico en acción.
El alcance dinámico significa que las búsquedas de variables ocurren en el ámbito donde se llama una función, no donde se define .
$ x=3
$ func1 () { echo "in func1: $x"; }
$ func2 () { local x=9; func1; }
$ func2
in func1: 9
$ func1
in func1: 3
En un lenguaje de ámbito léxico, func1
siempre buscaría en el ámbito global el valor de x
, porque func1
se define en el ámbito local.
En un lenguaje de alcance dinámico, func1
busca en el ámbito donde se llama . Cuando se llama desde func2
, primero busca en el cuerpo de func2
un valor de x
. Si no estuviera definido allí, se vería en el ámbito global, desde donde se llamó a func2
.
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow