3

哪种方法更好地将 MySQLi 资源传递给页面上的函数?作为值参数?作为参考参数?让它全球化?

我一直在考虑这个问题,但我不知道哪个更好或如何看待它。

提前致谢

4

2 回答 2

1

大多数人建议的模式是通过参数的函数传递它,或者如果您正在编写 OOP 方式,则使用依赖注入。

全局变量通常被认为是一种不好的做法,因为它们使阅读代码和检测依赖关系变得困难。

知道还有另一种选择是正确的,但它一直是网络上批评的主题:Singleton 设计模式。它最大的问题是:

  • 基本上是一种引入全局变量(实例)的技巧,因此继承了全局变量的问题。
  • 违背单一责任原则。
  • 隐藏程序的依赖
  • 很难进行单元测试

在这里您可以找到一些参考资料:

于 2013-02-09T23:42:04.607 回答
0

全球肯定。

你将用无用的额外参数污染你的代码,只是徒劳无功。
看,大多数人只是背诵一些规则,并无条件地遵循它们。但最好理解它们的含义并明智地使用,这取决于上下文。

称猫为猫并没有错。然而,将全局变量称为全局变量并没有错。
尽管“全局变量通常被认为是一种不好的做法”,但这种情况是不同的。
当您使用global关键字传递局部变量时,这确实是一种不好的做法。它使您的代码晦涩难懂且难以支持-我不是在争论这一点。但是真正的全局变量是完全不同的事情。PHP 一直在使用它们——$_SERVER数组就是一个很好的例子。

因此,对于一个真正的全局变量,它在整个代码中一直使用并作为文档化 API 的一部分 -global是最佳选择。

于 2013-02-10T06:18:39.873 回答