Среда: D5 на PHP 5.0
Есть свой скрипт(ы), который include в ноду.
Постоянная война с областью видимости переменных - где-то что-то видится, а где-то что-то не видится.
Сейчас есть задачка:
В скрипте, который вызывается из скрипта, который include в ноде, инициализируется переменная с массивом данных, а функция ниже в скрипте при вызове возвращает случайную запись из массива. При этом в том же массиве есть субмассив с ключами использованных записей, что бы не выводить повторы. global в первой же строчке функции не помогал - массив данных не доступен и все тут. Переносишь его во внутрь функции - все работает, выносишь - не работает.
Нашел решение в интернет под D6 - в месте первой инициализации переменной надо сначала объявить ее глобальной, затем проинициализировать в обычный способ и потом в местах вызова обращаться к ней через $GLOBAL. И о чудо - все заработало! Но... Но при каждой записи использованного ключа в субмассив, тот обнуляется! Попробовал при инициализации переменной сразу прописать в субмассив ключи с 0-ной отметкой ([1] => 0, [2] => 0 и т.д.) и выводить их через var_dump в функции только при входе в функцию и после каждого апдейта ключей в субмассиве: сначала субмассив полный и валидный, но после каждого апдейта в нем остается только проапдейтенный ключ... Т.е. все работает только на чтение?
Может есть где-то связанный материал (желательно на русском или подлежащий автоматическому переводу) про облась видимости переменных в Drupal (5)? А то уже обилие костылей в коде приводит в ужас...
Комментарии
Вопрос с записью в эту переменную таки снят - костыли кривоваты были
Но глобальный вопрос по ограничениям области видимости переменных остался.