0

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

class CheckUser {

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

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

}
4

1 回答 1

1

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

您的连接句柄是一个中心资源。就这样使用它。全局变量非常好,并且是预期的语言结构。只要您只有一个数据库/连接,它就有意义。

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

如果您的班级(在这里猜测)是数据库查询的中央访问点,那么将句柄作为简单属性同样令人愉快。

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

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

于 2012-06-17T13:16:02.533 回答