首頁  >  文章  >  後端開發  >  PHP中global與$GLOBALS的區別

PHP中global與$GLOBALS的區別

藏色散人
藏色散人轉載
2019-10-25 13:37:442293瀏覽

概念

單一global是關鍵字,通常附加在變數前,用於將變數宣告至全域作用域;

$GLOBALS是預定義的超全局變量,把變數丟到裡面的話一樣可以帶到全局去。

$GLOBALS 是一個關聯數組,每個變數為一個元素,鍵名對應變數名,值對應變數的內容。 $GLOBALS 之所以在全域範圍內存在,是因為 $GLOBALS 是一個超全域變數。

推薦:《PHP影片教學

細節:PHP釋放全域變數注意事項

global $var : 指函數外部同名變數的引用

$GLOBALS['var'] : 指函數外部變數本身

$a = 100;
function one(){
    global $a;
    unset($a);
}
one();
echo $a;
// 输出 100
/*******************************/
$a = 100;
function two(){
    unset($GLOBALS['a']);
}
two();
echo $a;
// 输出 Notice: Undefined variable: a

global $var; 等價於$var = &$GLOBALS['var'] ;

在函數內釋放一個全域變數,應該這樣:

unset($GLOBALS['var']);

而不能這樣:

global $var; unset($var);
<?php
$var = &#39;abc&#39;;
$tmp = &$var;
unset($tmp); //当你unset一个引用,只是断开了变量名和变量内容之间的绑定,这并不意味着变量内容被销毁了.
echo $var; //输出abc

以上是PHP中global與$GLOBALS的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除