Recherche…


Portée dynamique en action

La portée dynamique signifie que les recherches de variables ont lieu dans la portée où une fonction est appelée , et non là où elle est définie .

$ x=3
$ func1 () { echo "in func1: $x"; }
$ func2 () { local x=9; func1; }
$ func2
in func1: 9
$ func1
in func1: 3

Dans un langage de portée lexicale, func1 recherche toujours la valeur de x dans la portée globale, car func1 est défini dans la portée locale.

Dans un langage à portée dynamique, func1 regarde dans la portée où il est appelé . Lorsqu'il est appelé depuis func2 , il cherche d'abord dans le corps de func2 une valeur de x . Si elle n'y était pas définie, elle se situerait dans la portée globale, où func2 était appelé.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow