Гипотетическая ситуация: я запускаю сложный сайт в php, и я использую множество глобальных переменных.
я мог бы хранить переменные в существующей глобальной области действия, скажем $_REQUEST['userInfo']
, $_REQUEST['foo']
и $_REQUEST['bar']
и т. д. и помещать много разных вещей в область запроса ( которые будут надлежащим образом использоваться, поскольку эти данные относятся к самому запросу).
или
я мог бы использовать строки, такие как global $userInfo, $foo, $bar;
в большинстве моих функций.
есть ли производительность или разница в использовании памяти для любого решения?
один из них немного легче набирать … так есть ли руководство по лучшим практикам?
Ваши глобальные переменные уже доступны в $GLOBALS['foo'], $GLOBALS['bar']
и т. Д. Это более ясное указание на внутреннюю область функций, которую они получают из глобальной области, чем с использованием global
ключевого слова. Не должно влиять на производительность каким-либо значимым образом.
Многие расскажут вам, что лучше всего избегать глобальных переменных в первую очередь и вместо этого передавать переменные через вызовы функций и конструкторы объектов.
Оба довольно плохие. Я бы предложил использовать одноэлементные или статические классы.
Что касается использования памяти, не было бы никакой заметной разницы.