可能重复:
Global variables in PHP
我有一个类似
的PHP脚本global $var1;
function func1() {
$var1->something(); // $var1 not found ... why?
}
我必须在每个函数中执行全局$ var1吗?
答案 0 :(得分:4)
我必须在每个函数中执行全局$ var1吗?
是
PHP中的函数获得自己的变量范围。获取全局范围变量的唯一方法是直接请求它们。
我相信你会明白这会如何导致难以阅读的意大利面条代码。尽可能避免使用全局变量。
如果要构建OO代码,请考虑a Registry(命名空间集合)和/或Dependency Injection(传递构造函数中新对象所需的对象)。
答案 1 :(得分:1)
反过来了。
$var1 = new StdClass();
function func1() {
global $var1
$var1->something(); // $var1 not found ... why?
}
`
是的确你需要在你声明的每个函数中以这种方式调用它。