PHP destruct 函数显示错误?

PHP destruct function show an error?

我的 class 连接到数据库的 destruct 函数中显示错误,我试图删除 destruct 函数中的变量,但它也显示错误。这是代码:

class DB_CONNECT {
    function __construct() {
        $this->connect();
        echo "connected succesfully";
    }
    function __destruct() {
        $this->close();
    }

    function connect() {
        require_once __DIR__ . '/db_config.php';

        $con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE) 
                or die(mysqli_error());
        if($con){
            echo "connected succesfully";
        }
        return $con;
    }

    function close() {
        mysqli_close($con);
    }
}

并且有错误信息:

mysqli_close() expects parameter 1 to be mysqli

$con 需要在任何地方都可以访问,因此将其分配为对象 var $this->con:

function connect() {
    require_once __DIR__ . '/db_config.php';

    $this->con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE) or die(mysqli_error());
    if($this->con){
        echo "connected succesfully";
    }
    return $this->con;
}

function __destruct() {
    $this->close();
}


function close() {
    mysqli_close($this->con);
}

在您的连接方法中,您没有将 mysqli 对象分配给实例变量。

In __destruct $con is undefined/NULL 这解释了错误消息。

require_once __DIR__ . '/db_config.php';

class DB_CONNECT {
    private $conn;
    function __construct() {
        $this->connect();
    }

    function __destruct() {
        $this->close();
    }

    function connect() {
        $this->conn = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE) 
                          or die(mysqli_error());
        echo "connected succesfully";
    }

    function close() {
        mysqli_close($this->conn);
    }
}