<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    PHP語言中g(shù)lobal和$GLOBALS[]的分析

    原來以為global和$GLOBALS除了寫法不一樣以為,其他都一樣,可是在實(shí)際應(yīng)用中發(fā)現(xiàn),2者的區(qū)別還是很大的!
    先看下面的例子:
    1. <?php
    2. // 例子1
    3. function test_global() {
    4.   global $var1, $var2;
    5.   $var2 =& $var1;
    6. }

    7. function test_globals() {
    8.   $GLOBALS['var3'] =& $GLOBALS['var1'];
    9. }

    10. $var1 = 5;
    11. $var2 = $var3 = 0;

    12. test_global();
    13. print $var2 ."\n";

    14. test_globals();
    15. print $var3 ."\n";
    16. ?>
    復(fù)制代碼
    執(zhí)行結(jié)果為:
    0
    5
    怎么會(huì)這樣呢?不應(yīng)該是2個(gè)5嗎?怎么會(huì)出現(xiàn)1個(gè)0和1個(gè)5呢?

    恩,我們保留以上問題,深入分析$GLOBALS和global的原理!
    引用php手冊(cè)的$GLOBALS的解釋:

    Global 變量:$GLOBALS
    注意: $GLOBALS 在 PHP 3.0.0 及以后版本中適用。

    由所有已定義全局變量組成的數(shù)組。變量名就是該數(shù)組的索引。

    這是一個(gè)“superglobal”,或者可以描述為自動(dòng)全局變量。
    也就是說上面代碼中的$var1$GLOBALS['var1']是指的同一變量,而不是2個(gè)不同的變量!

    下面來分析global到底做了什么?

    我們都知道php中的函數(shù)所產(chǎn)生的變量都是函數(shù)的私有變量,那么global關(guān)鍵字產(chǎn)生的變量也肯定逃不出這個(gè)規(guī)則,為什么這么說呢,看下面的代碼:
    1. <?php
    2. // 例子2
    3. function test() {
    4.   global $a;
    5.   unset($a);
    6. }
    7. $a = 1;
    8. test();
    9. print $a;
    10. ?>
    復(fù)制代碼
    執(zhí)行結(jié)果為:
    1
    為什么會(huì)輸出1呢?不是已經(jīng)把$a給unset了嗎?unset失靈了?php的bug?

    都不是,其實(shí)unset起作用了,是把test函數(shù)中的$a給unset掉了,可以在函數(shù)后面加入
    1. print $a;

    所以我們得出一個(gè)結(jié)論,在函數(shù)中g(shù)lobal和$GLOBALS[]的區(qū)別在于:

    global在函數(shù)產(chǎn)生一個(gè)指向函數(shù)外部變量的別名變量,而不是真正的函數(shù)外部變量,一但改變了別名變量的指向地址,就會(huì)發(fā)生一些意料不到情況,例如例子1.

    $GLOBALS[]確確實(shí)實(shí)調(diào)用是外部的變量,函數(shù)內(nèi)外會(huì)始終保持一致!

    posted on 2009-04-19 16:52 丁克設(shè)計(jì) 閱讀(192) 評(píng)論(0)  編輯  收藏 所屬分類: PHP技術(shù)文檔

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    留言簿(6)

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲一区二区三区免费| 亚洲精品国产免费| 亚洲国产一区二区三区青草影视 | 亚洲av午夜电影在线观看| 免费jjzz在线播放国产| 很黄很污的网站免费| 亚洲综合国产成人丁香五月激情 | 精品国产日韩亚洲一区| 美女内射毛片在线看免费人动物| 国产精品亚洲综合久久| 中文字幕亚洲一区二区va在线| 1000部羞羞禁止免费观看视频| 香港特级三A毛片免费观看| 久久综合亚洲鲁鲁五月天| 国产成人精品免费视频大全五级| 污污网站18禁在线永久免费观看| 亚洲AⅤ男人的天堂在线观看| 亚洲成色WWW久久网站| 国产网站在线免费观看| 99爱视频99爱在线观看免费| 黄色免费在线网址| 亚洲乱码一二三四区国产| 国产AV无码专区亚洲AWWW| 女人18毛片水真多免费播放| 久久大香香蕉国产免费网站| 羞羞视频免费网站入口| 亚洲国产成人久久99精品| 亚洲成A人片在线观看无码不卡| 国产免费人人看大香伊| 114一级毛片免费| 免费国产成人α片| igao激情在线视频免费| 亚洲精品无码中文久久字幕| 久久亚洲sm情趣捆绑调教| 中文字幕亚洲天堂| 国产小视频在线免费| 成人影片麻豆国产影片免费观看| 国产激情免费视频在线观看 | 91视频免费网站| 国产va免费精品| 免费人成动漫在线播放r18|