官术网_书友最值得收藏!

1.7 global關鍵字與global數組的區別

你也許記得,前面我們提到過global關鍵字和global數組。那么問題來了,它們長得如此像,似乎功能也相同,到底有什么區別?我們分別來看一下。

$GLOBALS['var']是外部的全局變量本身,global $var是外部$var的同名引用或者指針,如代碼清單1-7所示:

代碼清單1-7刪除全局變量

        <? php
        $var1 = 1;
        function test(){
            unset($GLOBALS['var1']);
        }
        test();
        echo $var1;
        ?>

因為$var1變量被刪除,所以沒有內容顯示出來。請再看如下代碼:

        <? php
        $var1 = 1;
        function test(){
            global $var1;
            unset($var1);
        }
        test();
        echo $var1;
        ?>

此段代碼意外地打印了1。這是為什么?因為刪除的只是個別名引用,其本身的值并沒有任何更改。

global $var與&$GLOBALS['var']等價,相當于調用外部變量的一個別名,所以上面代碼中的$var1和$GLOBALS['var1']指向的是同一個變量。

PHP的全局變量和C有一點點不同。在C語言中的全局變量在函數體內無效。而在PHP中,在函數中想調用外部全局變量時可用global聲明。PHP的“全局”不是指整個網站,而是應用于當前頁面,包括include或require的全部文件。

綜合以上內容,我們總結出如下結論:

□ $GLOBALS['var']是外部的全局變量本身。

□ global $var是外部$var的同名引用或者指針。

主站蜘蛛池模板: 曲靖市| 安徽省| 谷城县| 六安市| 文安县| 宜阳县| 康乐县| 本溪市| 延津县| 洛川县| 华亭县| 新沂市| 自治县| 宁南县| 冀州市| 上思县| 丰县| 温州市| 上栗县| 永康市| 安图县| 新昌县| 左云县| 南郑县| 永顺县| 红安县| 玉环县| 孟村| 全椒县| 滦南县| 泸西县| 米易县| 宁明县| 福安市| 宁安市| 同仁县| 汝城县| 巍山| 渝北区| 平泉县| 道孚县|