在PHP中,global $globals是一個非常重要的命令。簡單來說,它用于將一個全局變量轉換成可在函數內部使用的局部變量。這樣做的好處是,在函數內部我們可以隨時對這個變量進行修改或讀取,而不必擔心影響到全局的其他地方。
假如我們的網站有一個全局變量$settings,它是一個數組,存儲了我們網站的設置信息。如果我們想在某個函數中對這個變量進行操作,就需要使用global $globals。
$settings = array( 'site_title' =>'My Awesome Website', 'logo' =>'logo.png', 'background_color' =>'white' ); function change_title() { global $settings; $settings['site_title'] = 'New Title'; } change_title(); echo $settings['site_title']; // 輸出'New Title'
在上面的代碼中,我們定義了一個$settings變量,并且在一個函數中使用global $globals將它轉變成局部變量。接著我們調用change_title函數修改了$settings中的site_title,最后輸出的結果就是'New Title'。
當然,global $globals并不是只能用在數組上。我們同樣可以將一個全局變量轉換成一個局部變量,以便在函數內部對它進行操作。
$counter = 0; function increment_counter() { global $counter; $counter++; } increment_counter(); increment_counter(); echo $counter; // 輸出'2'
在上面的代碼中,我們定義了一個全局變量$counter,用于計數。然后我們定義了一個函數increment_counter,在函數內部使用global $globals將$counter轉變成一個局部變量。接著我們調用函數兩次,最后輸出的結果就是2。
需要注意的是,如果我們在一個函數中重新定義了同名的變量,那么原來的全局變量就會被覆蓋,這是一種常見的錯誤。
$settings = array( 'site_title' =>'My Awesome Website', 'logo' =>'logo.png', 'background_color' =>'white' ); function change_title() { $settings = array( 'site_title' =>'New Title' ); } change_title(); echo $settings['site_title']; // 輸出'My Awesome Website'
在上面的代碼中,我們定義了一個$settings變量,并且在一個函數中重新定義了同名的變量。這時,函數中的$settings會覆蓋掉全局$settings,導致最后輸出的結果不是我們想要的。
不過,我們可以使用關鍵字global將外部的全局變量引入到函數內部,并且在函數中對它進行操作。這樣即使函數內部有同名變量,也不會影響到我們的全局變量。
$settings = array( 'site_title' =>'My Awesome Website', 'logo' =>'logo.png', 'background_color' =>'white' ); function change_title() { global $settings; $settings = array( 'site_title' =>'New Title' ); } change_title(); echo $settings['site_title']; // 輸出'New Title'
在上面的代碼中,我們使用global將全局$settings引入到函數內部,然后在函數中對它進行操作,最后輸出的結果就是'New Title'。
總之,在PHP中,global $globals是一個非常重要的命令。它可以將外部的全局變量引入到函數內部,以便在函數中對它進行操作,同時又不必擔心影響到全局的其他地方。如果我們希望在函數內部對一個全局變量進行操作,則必須使用global $globals來將它轉化為可在函數中使用的局部變量。