Mysqli conn包含文件 - 全局变量PHP

时间:2012-06-17 13:03:16

标签: php global-variables class-constructors

我将MySQLi连接文件包含在PHP类的构造函数中。由于我需要在此类的方法中访问connect变量,因此我需要将变量设置为global。我总是听说全局变量很糟糕。所以我想知道,这是解决这个问题的唯一/最佳方法吗?

class CheckUser {

  function __construct() {
     require_once('mysqli.php');
  }

  function checkEmail($email) {
     // sql code here
  }

}

1 个答案:

答案 0 :(得分:1)

那只是一个模因。 (并且依赖注入即将到来......)

您的连接句柄是一个中心资源。这样使用它。一个全局变量是完全正确的,并为此构建了预期的语言。只要您只有一个数据库/连接,它就有意义。

如果全局变量不好,我们就不会有$_GET$_POST实际的全局变量)。

如果您的类(在此猜测)是数据库查询的中心访问点,那么将句柄作为简单属性进行操作就像cromulent一样。

  function __construct() {
     require_once('mysqli.php');
     $this->db = $db;
  }

mysqli.php脚本创建的任何局部变量。