Возможный дубликат:
Глобальные переменные в PHP
У меня есть скрипт PHP, похожий на
global $var1; function func1() { $var1->something(); // $var1 not found ... why? }
Должен ли я делать глобальные $ var1 в каждой функции?
Должен ли я делать глобальные $ var1 в каждой функции?
Да.
Функции в PHP получают свою собственную переменную. Единственный способ получить доступ к переменным в глобальной области – это запросить их напрямую.
Я уверен, что вы поймете, как это может вызвать сложный для чтения код спагетти. Избегайте глобализации, когда можете.
Если вы создаете OO-код, рассмотрите реестр (коллекция с расширением имен) и / или инъекцию зависимостей (передавая объекты, требуемые новым объектом в конструкторе).
Это наоборот.
$var1 = new StdClass(); function func1() { global $var1 $var1->something(); // $var1 not found ... why? } `
-$var1 = new StdClass(); function func1() { global $var1 $var1->something(); // $var1 not found ... why? } `
Да, действительно, вам нужно назвать это так в каждой функции, которую вы заявляете.