簡體   English   中英

嘗試啟動連接時為什么會出現NULL?

[英]Why am I getting NULL when I try to initiate a connection?

我有一個帶有全局$connection的類,但是當我嘗試訪問它時,我得到的是NULL。 如您所見,如果我嘗試在構造函數內訪問,我不會得到NULL。 但是從getConnection()我得到NULL。

class DatabaseManipulation
{
    private $connection;

    function __construct()
    {
        global $connection;
        $connection = new mysqli("localhost", "root", "", "db");
        $result = $connection->query("select * from user");

        print_r($result); //I get an array
    }

    function getConnection(){
        global $connection;
        var_dump($connection); // I get -> object(DatabaseManipulation)#1 (1) { ["connection":"DatabaseManipulation":private]=> NULL } NULL 
    }

}

當我實例化一個對象$connection = new DatabaseManipulation();時,也會發生同樣的事情$connection = new DatabaseManipulation(); 難道我做錯了什么? 我希望這可以通過OO方式完成。 誰能幫我 ?

您正在使用OO PHP而不是程序性的。 因此將其更改為:

$this->connection = new mysqli("localhost", "root", "", "db");;

我希望這可以通過OO方式完成。

然后停止使用global 在上課時,您不想引用全局狀態。 快速瀏覽The Basics ,您會發現在對象內部有一個偽變量$this

class DatabaseManipulation
{
    private $connection;

    function __construct()
    {
        $this->connection = new mysqli("localhost", "root", "", "db");
    }

    function getConnection(){
        var_dump($this->connection);
    }
}

關於它的更多信息:

  1. 為什么全球國家如此邪惡?
  2. 變量$ this在PHP中是什么意思?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM