我在PHP中創建了一個基本框架。我需要將當前頁面的數據傳遞給不同的功能,允許他們修改並保存它,然後將其傳回到要顯示的頁面。我原本打算將數據存儲在像$GLOBALS['data']
這樣的全局變量中,但我開始認爲使用全局變量是一個壞主意。所以我在想,相反,我會在系統類中放入一個靜態變量,並使用system::$data
來訪問它。所以,我的問題是,哪個更好,爲什麼?PHP中的全局與靜態變量
此:
$GLOBALS['data'] = array();
$GLOBALS['data']['page_title'] = 'Home';
echo $GLOBALS['data']['page_title'];
或者這樣:
class system
{
public static $data = array()
}
function data($new_var)
{
system::$data = array_merge(system::$data, $new_var);
}
data(array('page_title' => 'Home'));
echo system::$data['page_title'];
真棒文章 –
是否有性能差異?看起來全局變量不如使用靜態變量那樣高效。 –
@凱爾**沒關係**認真。可能存在差異,但它的天文數字太小而無關緊要。您的首要任務應該是編寫可維護,合乎邏輯,可讀性強的代碼,以及所有其他應用程序代碼。爲了這個目的,全局變量和「公共靜態」變量都是可怕的。 – deceze