2012-06-17 89 views
0

我在PHP類的構造函數中包含MySQLi連接文件。因爲我需要在這個類的方法中到達連接變量,所以我需要使變量全局。我總是聽到全局變量不好。所以我想知道,這是解決這個問題的唯一/最好的方法嗎?Mysqli conn包含文件 - 全局變量PHP

class CheckUser { 

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

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

} 
+0

我不明白這一點。你需要班外的連接**嗎?如果不是,爲什麼它不適用於這些方法? – Cranio

+0

我需要將方法稱爲「獨立式」方法,可以這麼說。 – user1121487

回答

1

這只是一個模因。 (並且依賴注入即將到來......)

您的連接句柄是一箇中心資源。像這樣使用它。一個全局變量是完全正確的,併爲此構建了預期的語言結構。只要您只有一個數據庫/連接,這是有道理的。

如果全局變量不好,我們不會有$_GET$_POST(它們是實際爲全局變量)。

如果你的類(在這裏猜測)是數據庫查詢的中心訪問點,那麼將該句柄作爲簡單屬性保持一致是非常重要的。

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

或任何局部變量mysqli.php腳本創建。

+0

好的,那麼在類中的字段中使用對變量的引用呢?我不確定如何在PHP中做到這一點,但不應該那麼好嗎? – user1121487

+0

對於資源句柄,它是否是複製或變量引用無關緊要。 - 如果您發佈最新的代碼摘錄,通常可以提供更具體的答案。 – mario

+0

好吧,我已經更新了代碼示例。 – user1121487