我想要一個變量是超全局,但隨着使用過程的風格是,我不認爲我可以讓我自己的,所以基本上的問題是,我使用的查詢檢索從安全表我的網站的所有安全控制,我檢查維護模式是開/關,如果它是在凌晨下的維護頁面它重定向到網站,讓每一頁上我需要檢查變量$maintenance_status
的狀態,這樣做的,我需要在調用查詢每個頁面,否則會得到一個錯誤,未定義的變量,此外,如果我正在製作一個函數並在其他頁面中包含該函數文件,它向我顯示$db_connect
(這是我的db連接變量)未定義,包括我的頁面此序列自定義變量可以像每個頁面一樣使用超級全局變量嗎?
include_once('connection.php');
include_once('functions.php');
/*other scripts goes here*/
任何想法如何在每個頁面上拉這個狀態?我想爲常見查詢創建一個新文件,但它是一個乾淨的解決方案嗎?而且我猜我不理解包括,如果我包括connection.php
functions.php
比以前爲什麼我functions.php
是顯示未定義的變量$db_connect
?
賓果,我定義$ db_connection全球和它的工作原理,並順便說一句,你建議我不應該使用全局,但在這裏,我的連接變量是全球性的,我想這是非常好的?無論如何,我會改變我的db_connection到一個常量 –
實際上,因爲我說我不能使用常量,因爲如果我使用常量比我可以在連接或我的功能頁上調用一個查詢,因爲這些是我只有兩個頁面包括反正我做了一個函數,在那個函數中調用了一個查詢,使得我的數據庫連接變量爲全局變量,並且返回值並使用'if(maintenance_status()== off){}然後做一些事情}'與一個字符串進行比較。任何方式,這兩個答案都很有幫助,但使用全球字解決我的功能錯誤。 –
@ V413HAV DB連接句柄不能存儲在一個常量中。但是,您可以將常量中的值保存在您的維護模式開/關值中。我只是說我通常不喜歡在函數中使用'global $ variable'類型的聲明。我通常會使用依賴注入(傳遞變量作爲參數),或者使用數據庫連接singleton,並且只需從函數內部調用一個靜態方法,如'db :: connect()'來獲取函數中的數據庫連接句柄。但是既然你說過你主要是在做程序,那麼最後的解決方案可能不適合你。 –