我正在从事一个 PHP 项目,有时我在网上阅读的东西和我在论坛上看到的东西等。我一直在读到你不应该使用 php globals。确保我没有把它与 PHP register_globals 混淆,因为我没有,我一直在研究,但我还没有真正找到原因或任何类型的替代方案。
所以,我的问题很简单。我不应该在 PHP 中使用 global
关键字吗?此外,如果我不应该(或应该),还有其他选择吗?原因是,我注意到我需要访问另一个文件中定义的变量,我需要在一个函数中引用或调用这个变量,很多函数,我有点累了或者使用 global $var_name;
代码就这么多。
有什么想法(或者我完全错了)?
最佳答案
静态类和单例只比全局类好一点点。静态类只是对全局变量进行分组,但变量本身仍然是全局可访问的单个实例变量。单例也是如此。尽管它们有其用途,但不应将它们用作全局变量的一般替代品。 PHP 让它变得很诱人,尤其是因为必须在函数中声明全局变量,而静态类始终随处可用。
您最好将变量放在一个类中(如“AppConfig”或更具体的类),并创建该类的实例来保存特定值。然后,将该实例传递给框架中的所有方法。这样,您就不会依赖特定的 Singleton 实现,并且真正灵活。
但是,我必须承认这是一项繁重的工作,尤其是当您还没有经验时。所以现在使用单例可能没问题,只要您在将来感觉单例在某个地方发痒时牢记这个答案即可。
关于PHP:全局变量替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919667/