eldhenn: (Default)
[personal profile] eldhenn
На своей шкуре ощутил, что глобальные переменные - зло. И лучше всю, то есть вообще всю, логику распихивать по подпрограммам.

Была у меня глобальная переменная $last_apl. В глобальной области видимости был цикл, выбирал данные из базы, компоновал их в эту переменную, и время от времени вызывал обработку - process_apl($last_apl). В process_apl уже локальный параметр назывался просто $apl, но в одном месте остался вызов мутатора с параметром $last_apl, с глобальной переменной... А мутатор тот редко работал, в большинстве случаев он оставлял всё как есть.
Что мы имеем - проверка синтаксиса проходит успешно, и сам скрипт тоже работает успешно, почти всегда. Ну вроде когда-то результаты получились чуть-чуть не такие, но списал на глюки. А тут ткнули носом - неверный результат сформировался! Странно, думаю, вроде для таких случаев как раз особая логика и написана... Вытащил мутатор в тестовый скрипт, закинул в него данные - отработал, поменял, всё правильно. Чудеса... А чудеса объяснялись просто.
И ведь $last_apl сразу после вызова process_apl инициализировалась заново, поэтому любые изменения в ней пропадали, источниками ошибок стать не могли.
This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

eldhenn: (Default)
Элдхэнн

Tags

September 2022

S M T W T F S
    123
45678910
11121314151617
181920 21222324
252627282930 

Expand Cut Tags

No cut tags