Поиск…


Динамическое определение масштаба в действии

Динамические обзорный означает , что переменные поиски происходят в объеме , когда функция называется, не там , где она определена.

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

На лексическом языке func1 всегда будет искать в глобальной области значение x , потому что func1 определяется в локальной области.

На динамически ограниченном языке func1 просматривается в области, где он называется . Когда он вызывается из func2 , он сначала смотрит в тело func2 на значение x . Если он не был определен там, он будет выглядеть в глобальной области, откуда был вызван func2 .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow