我将MySQLi连接文件包含在PHP类的构造函数中。由于我需要在此类的方法中访问connect变量,因此我需要将变量设置为global。我总是听说全局变量很糟糕。所以我想知道,这是解决这个问题的唯一/最佳方法吗?
class CheckUser {
function __construct() {
require_once('mysqli.php');
}
function checkEmail($email) {
// sql code here
}
}
答案 0 :(得分:1)
那只是一个模因。 (并且依赖注入即将到来......)
您的连接句柄是一个中心资源。这样使用它。一个全局变量是完全正确的,并为此构建了预期的语言。只要您只有一个数据库/连接,它就有意义。
如果全局变量不好,我们就不会有$_GET
和$_POST
(实际的全局变量)。
如果您的类(在此猜测)是数据库查询的中心访问点,那么将句柄作为简单属性进行操作就像cromulent一样。
function __construct() {
require_once('mysqli.php');
$this->db = $db;
}
或mysqli.php
脚本创建的任何局部变量。