siv1987, это обычные функции, но они используются не в определенном контексте (как в случае с методами), а предназначены для всей программы. Например, парсинг даты со строки (типа, "завтра", "на день рождение + 2 дня"), гибрид multibyte функций с обычными строковыми функциями с автодетекцией нужной. То-есть, я вместо того чтобы каждый раз проверять кодировку, установленный язык, вести кэш, могу просто написать convert_case($string).
А расширение же можно написать? Как-то же делают. Ну может есть какой-то вариант. Уже предлагали автоматом подставлять global, но это может нарушить целостность файлов. Да и вообще как-то криво звучит.
Ладно. Спасибо. :(
Тем что по сравнению с Registry::$LANG - это шило на мыло. Скажите, что бы вы сами выбрали $LANG или $GLOBALS['LANG']?
Чует мое сердце, в следующей версии PHP, GLOBALS будет Deprecated.
siv1987, да я уже реализовал наиболее подходящий вариант ООП Registry::$CONF, Registry::$LANG, Registry::$DIR. Но зачем мне ООП для такой дребезени? Зачем мне такой паровоз писать каждый раз? Зачем мне $this, зачем мне self?
Я использую глобальные функции + методы классов, в том числе статические.
Мне нужен многомерный глобальный массив! Я бы готов десять раз написать global $CONF, $LANG, $DIR, но нужно написать раз 500! И при этом не забывать писать это в новых методах. Поэтому я и спросил за эмуляцию глобального массива, такого как GLOBALS, но только со своим именем.
siv1987, жжете. Все обычное в PHP я и сам знаю. Я спрашиваю за необычное.
Еще раз.
У меня есть 20+ классов. В каждом из классов нужно использовать конфигурацию. Сейчас я использую Registry::$CONF, а вчера это были константы. Подобный синтаксис не очень выгодный и излишне не продуктивный. Поэтому, я решил использовать глобальный массив с настройками и писать просто $CONF. Но тут меня накрыла проблема, чтобы работать с глобальным объектом, нужно перед каждым вызовом в новой подпрограмме писать global.
Какой self? Какой $this? Речь идет о 20+ глобальных классах.
siv1987, который работает только в объективном контексте, но не работает в статическом... То-бишь, на объект.
Там где работает такое $this->settings =& $this->registry->getSettings(); , можно написать и global для обычного массива. Но проблема в том, что слишком часто это нужно делать. Вот.
По-моему, извращение это ООП для обычного хранения конфигурации.
А $this это что? Указание на объект, правильно?
siv1987, ООП.
И каждый раз создавать новый объект :) ? Для меня идеал - глобальный массив, но увы. Работал бы global глобально, было бы все как надо.
То не можна, то нельзя. Ладно. Создам алиас _ к Registry. :(
siv1987, я выбрал регистр. Но не нужен мне он. Мне нужен глобальный массив. Что делать? :(
Или мне так писать _::$CONF чтобы было короче. Нет, ну это же костыли. А обращаться к конфигурациям через Registry::$CONF это ахтунг!
bay_ebook, в константах было изначально. Не устраивать ибо нужна вложенная структура + 1% данных изменяется во время выполнения скрипта. Нужен именно супермассив. GLOBALS вроде бы и подходит, но... заносить LANG, CONF, DIR в один массив? - Нет.
Ну не верю я, что нету возможности создать свой супермассив.