$_ENV
使用和有什么区别$GLOBALS
?
我希望有一个全局变量可以随时随地获取和设置(需要在 OO 类和普通程序 PHP 脚本中访问)。我应该使用以上哪个?
您应该使用$GLOBALS
它的目的,提供一个设置全局变量的地方,这些变量可以在您的 PHP 代码的任何上下文(在函数、类、任何地方)中访问。
但是作为一种良好的编程习惯,不要滥用全局变量,相反,请尝试让您的函数和对象方法在上下文中拥有它们工作所需的所有数据,这样您的代码就更加灵活,请参阅globals are evil。
您根本不应该使用全局变量,而是使用依赖注入(即将所有必要的数据作为函数参数传递),但如果必须,请使用$GLOBALS
. $_ENV
保存系统传递的 PHP 脚本之外的数据。虽然它可能作为超全球服务的目的,但这不是它的目的。
对于全局变量的替代方法,看看 Zend 是如何做到的。Zend 注册表: http: //framework.zend.com/manual/1.12/en/zend.registry.html
基本上,它是一个具有一些用于获取和设置变量的静态方法的类。
我个人更喜欢这种使用全局变量的方法。