哪种方法更好地将 MySQLi 资源传递给页面上的函数?作为值参数?作为参考参数?让它全球化?
我一直在考虑这个问题,但我不知道哪个更好或如何看待它。
提前致谢
大多数人建议的模式是通过参数的函数传递它,或者如果您正在编写 OOP 方式,则使用依赖注入。
全局变量通常被认为是一种不好的做法,因为它们使阅读代码和检测依赖关系变得困难。
知道还有另一种选择是正确的,但它一直是网络上批评的主题:Singleton 设计模式。它最大的问题是:
在这里您可以找到一些参考资料:
全球肯定。
你将用无用的额外参数污染你的代码,只是徒劳无功。
看,大多数人只是背诵一些规则,并无条件地遵循它们。但最好理解它们的含义并明智地使用,这取决于上下文。
称猫为猫并没有错。然而,将全局变量称为全局变量并没有错。
尽管“全局变量通常被认为是一种不好的做法”,但这种情况是不同的。
当您使用global
关键字传递局部变量时,这确实是一种不好的做法。它使您的代码晦涩难懂且难以支持-我不是在争论这一点。但是真正的全局变量是完全不同的事情。PHP 一直在使用它们——$_SERVER
数组就是一个很好的例子。
因此,对于一个真正的全局变量,它在整个代码中一直使用并作为文档化 API 的一部分 -global
是最佳选择。