欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP全局變量中的global與$GLOBALS的區(qū)別和用法小結(jié)

 更新時(shí)間:2023年10月24日 09:29:18   作者:YBaog  
這篇文章主要介紹了PHP全局變量中的global與$GLOBALS的區(qū)別和用法小結(jié),global的作用就相當(dāng)于傳遞參數(shù),在函數(shù)外部聲明的變量,如果在函數(shù)內(nèi)想要使用,就用global來聲明該變量,這樣就相當(dāng)于把該變量傳遞進(jìn)來了,就可以引用該變量了,需要的朋友可以參考下

1.有些場合需要全局變量的出現(xiàn),如下例子:

    <?php  
    $name="why";//定義變量name,并初始化  
    function echoName()  
    {  
    //試圖引用函數(shù)外面的變量  
    echo "myname is ".$name."<br>";  
    }  
    echoName();  
    ?>  

上面的代碼的結(jié)果為:"myname is" 。而不是期望中的:"myname is why"。因?yàn)楹瘮?shù)沒有傳遞參數(shù)$name的值,企圖引用外部變量,不會成功。這時(shí)候考慮使用global。

2.于是將上述代碼改為

<?php  
global $name="why";//用global聲明的同時(shí)賦值  
function echoName()  
{  
//試圖引用函數(shù)外面的變量  
echo "myname is ".$name."<br>";  
}  
echoName();  
?> 

結(jié)果為:Parse error: syntax error, unexpected '=', expecting ',' or ';' in http:\\xxxxxxx.com on line 2
也即上述代碼有錯(cuò)誤。原因是不能在用global聲明變量的同時(shí)給變量賦值。

3.再次更改上述代碼:

    <?php  
    global $name;  
    $name="why";//將global聲明與賦值分開  
    function echoName()  
    {  
    //試圖引用函數(shù)外面的變量  
    echo "myname is ".$name."<br>";  
    }  
    echoName();  
    ?>  

但是得到的結(jié)果依然為:"myname is" ,原因是global的用法不對。

global的正確用法是:"在一個(gè)函數(shù)中引入外部的一個(gè)變量,如果該變量沒有通過參數(shù)傳遞進(jìn)來,那么就通過global引入進(jìn)來。" 也就是說,當(dāng)一個(gè)函數(shù)引用一個(gè)外部變量時(shí),可以在函數(shù)內(nèi)通過global來聲明該變量,這樣該變量就可以在函數(shù)中使用了(相當(dāng)于當(dāng)作參數(shù)傳遞進(jìn)來)。

4.于是進(jìn)一步改動上述代碼:

    <?php  
    $name="why";//定義變量name,并初始化  
    function echoName()  
    {  
    //通過global來聲明$name,相當(dāng)于傳遞參數(shù)  
    global $name;  
    echo "myname is ".$name."<br>";  
    }  
    echoName();  
    ?>  

此時(shí)得到期望中的結(jié)果:"myname is why"。
以上代碼說明,global是起傳遞參數(shù)的作用,而并非使變量的作用域?yàn)槿帧?/p>

5.以下代碼證明了這一點(diǎn):

    <?php  
    $name="why";//聲明變量$name,并初始化  
    function echoName1()  
    {  
    //在函數(shù)echoName1()里使用global來聲明$name  
    global  $name;  
    echo "the first name is ".$name."<br>";  
    }  
    function echoName2()  
    {  
    //在函數(shù)echoName2()里沒有使用global來聲明$name  
    echo "the second name is ".$name."<br>";  
    }  
    echoName1();  
    echoName2();  
    ?>  

結(jié)果為:

the first name is why
the second name is

上面的結(jié)果說明在函數(shù)echoName2()中,$name變量仍然是未知的,因?yàn)闆]有用global來聲明,也就沒有傳遞進(jìn)去。同時(shí)也證明了global的作用并不是使變量的作用域?yàn)槿帧?/p>

綜上,global的作用就相當(dāng)于傳遞參數(shù),在函數(shù)外部聲明的變量,如果在函數(shù)內(nèi)想要使用,就用global來聲明該變量,這樣就相當(dāng)于把該變量傳遞進(jìn)來了,就可以引用該變量了。

當(dāng)然,除了通過上述方法外,還可以使用全局?jǐn)?shù)組$GLOBALS來解決問題,在需要用到外部變量的地方,使用$GLOBALS['var']就可以了。例:

 
    <?php  
    $name="why";//定義變量name,并初始化  
    function echoName()  
    {  
    //通過全局?jǐn)?shù)組$GLOBALS來引用外部變量  
    echo "myname is ".$GLOBALS['name']."<br>";  
    }  
    echoName();  
    ?>  

得到的結(jié)果為:  

myname is why 。

到此這篇關(guān)于PHP全局變量中的global與$GLOBALS的區(qū)別和使用的文章就介紹到這了,更多相關(guān)php global與$GLOBALS內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論