Глобальная переменная PHP, не найденная в функциях

Возможный дубликат:
Глобальные переменные в 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? } ` 

Да, действительно, вам нужно назвать это так в каждой функции, которую вы заявляете.