- Сообщения
- 8,673
- Репутация
- 2,486
Не уверен что бага, т.к опция специфическая, но в любом случае раньше так кажется небыло, да и поведение не особо ожидаемое.
Вот пример:
Многим “писателям” UDF известно такое применение, когда для UDF нужно установить некоторые опций, но для самого скрипта, использующего эту UDF, эти опций нужно отменить. Так вот, тут такой трюк не проходит, известно что $iOld_Opt = 0, однако скрипт ругается на необъявленную переменную $var2, хотя если проверить Opt("MustDeclareVars"), то оно равняется 0 , а значит опция всё таки отменена :wacko:
Что ещё более странное, так это если вместо $iOld_Opt подставить литеральное число (0), то скрипт больше не ругается.
Решение есть, заключается оно в простом подставлений Opt("MustDeclareVars", 0) перед Opt("MustDeclareVars", $iOld_Opt):
Но в любом случае, странно всё это...
Вот пример:
Код:
Dim $iOld_Opt = Opt("MustDeclareVars", 1)
Dim $var1 = 0
Opt("MustDeclareVars", $iOld_Opt)
$var2 = 0
Многим “писателям” UDF известно такое применение, когда для UDF нужно установить некоторые опций, но для самого скрипта, использующего эту UDF, эти опций нужно отменить. Так вот, тут такой трюк не проходит, известно что $iOld_Opt = 0, однако скрипт ругается на необъявленную переменную $var2, хотя если проверить Opt("MustDeclareVars"), то оно равняется 0 , а значит опция всё таки отменена :wacko:
Что ещё более странное, так это если вместо $iOld_Opt подставить литеральное число (0), то скрипт больше не ругается.
Решение есть, заключается оно в простом подставлений Opt("MustDeclareVars", 0) перед Opt("MustDeclareVars", $iOld_Opt):
Код:
Opt("MustDeclareVars", 0)
Opt("MustDeclareVars", $iOld_Opt)
Но в любом случае, странно всё это...