Цитата:
Изначально опубликовано mifi
Класс Global не предназначен для использования каких-либо переменных, а содержит одни статические методы-функции.
Кстати.
Здесь все правильно. Но я и говорил о том, что в Global нет механизма инициализации. при входе.
Для некоторых глобальных вещей имеет смысл применять следующую методику: в Global определяется статический метод и privet переменная. В коде идет обращение к методу. В методе делается проверка и если переменная не инициализирована, то сначала выполняется инициализация, а потом уже сам метод:
примерно так:
PHP код:
public class Global
{
MyType myVar;
}
static myType mySuperMethod()
{
if( !myVar )
{
// инициализация
}
// что-то делаем
return myVar;
}
Этот прием часто используется при программировании пропертей в COM- и ActiveX-объектах.
Плюс состоит в том, что инициализация и выделение памяти происходит автоматически только в момент первого обращения к методу. Но, естественно, у такого подхода есть минусы. Нужно взвешивать и принимать решения.