PHP - проблема производительности и памяти с глобальными переменными - PullRequest
2 голосов
/ 17 марта 2011

Гипотетическая ситуация: Я использую сложный сайт в php и использую множество глобальных переменных.

я мог бы хранить переменные в существующей глобальной области видимости, скажем $_REQUEST['userInfo'], $_REQUEST['foo'], $_REQUEST['bar'] и т. Д., И помещать много разных вещей в область запроса (что было бы целесообразно использовать, как эти данные см. сам запрос).

или

Я мог бы продолжать использовать строки, подобные global $userInfo, $foo, $bar;, в большинстве моих функций.

есть ли снижение производительности или разница в использовании памяти для любого из решений?

один из них немного легче набрать ... так есть ли рекомендация по передовому опыту?

Ответы [ 2 ]

8 голосов
/ 17 марта 2011

Ваши глобальные переменные уже доступны в $GLOBALS['foo'], $GLOBALS['bar'] и т. Д. В области видимости функции более четко указывается, что они происходят из глобальной области видимости, чем при использовании ключевого слова global. Не должно влиять на производительность каким-либо значимым образом.

Многие скажут вам, что лучше всего избегать глобальных переменных, а вместо этого передавать переменные через вызовы функций и конструкторы объектов.

5 голосов
/ 17 марта 2011

Оба довольно плохие. Я бы предложил использовать одноэлементные или статические классы.

Что касается использования памяти, заметной разницы не будет.

...