深入理解PHP中的global
一、實現(xiàn)原理
在PHP的函數(shù)中,global語法是比較常見的,大家一定都知道一旦在函數(shù)中g(shù)lobal了某個外部變量后,這個變量就可以在這個函數(shù)中使用了,但是也有不少網(wǎng)友不知道這是一個什么實現(xiàn)原理?,F(xiàn)在上一個例子,大家一看就知道了:
$globalStr = '.net';
function globalTest(){
global $globalStr;
$globalStr = 'jb51'.$globalStr;
unset($globalStr);
}
globalTest();
echo $globalStr; //輸入: jb51.net
從這個例子看出global了一個變量就等于傳遞了一個引用進來。這樣理解的話,下面的代碼輸出結(jié)果就不難理解了。
二、php中g(shù)lobal的作用
global $var1,$var2;
就是外部變量的同名引用,變量本身的作用范圍仍然在函數(shù)體內(nèi)。改變這些變量的值,外部的同名變量自然也改變。但一旦用了&,那么變量將不再是同名引用。
<?php
$var1 = 1;
$var2 = 2;
function test()
{
global $var1,$var2; // 作用范圍在函數(shù)體內(nèi)
$var1 = 3;
}
test();
echo $var1;
?>
結(jié)果是 3。因為是同名引用。
<?
$var1 = 1;
$var2 = 2;
function test()
{
global $var1,$var2;
$var1 = &var2;
}
test();
echo $var1
?>
結(jié)果是1。因為在函數(shù)內(nèi)的$var1經(jīng)過賦值后與$var2具有相同的引用了。進一步看下面的代碼。
<?php
$var1 = 1;
$var2 = 2;
function test_global()
{
global $var1,$var2;
$var1=&$var2;
$var1=7;
}
test_global();
echo $var1;
echo $var2;
?>
結(jié)果是1和7。因為在函數(shù)內(nèi)的$var1與$var2具有相同的引用。因此改變了$var1的值,$var2的值夜作了改變。
- php使用glob函數(shù)快速查詢指定目錄文件的方法
- PHP中使用glob函數(shù)實現(xiàn)一句話刪除某個目錄下的所有文件
- PHP循環(huán)遍歷數(shù)組的3種方法list()、each()和while總結(jié)
- PHP采用自定義函數(shù)實現(xiàn)遍歷目錄下所有文件的方法
- PHP數(shù)組遍歷知識匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測速)
- php遍歷數(shù)組的4種方法總結(jié)
- PHP遍歷數(shù)組的幾種方法
- PHP 數(shù)組遍歷方法大全(foreach,list,each)
- PHP 數(shù)據(jù)庫樹的遍歷方法
- PHP使用glob函數(shù)遍歷目錄或文件夾的方法
相關(guān)文章
WordPress中登陸后關(guān)閉登陸頁面及設(shè)置用戶不可見欄目
這篇文章主要介紹了WordPress中登陸后關(guān)閉登陸頁面及設(shè)置用戶不可見欄目的方法,是多用戶模式下比較實用的兩個功能,需要的朋友可以參考下2015-12-12
PHP實現(xiàn)支持SSL連接的SMTP郵件發(fā)送類
這篇文章主要介紹了PHP實現(xiàn)支持SSL連接的SMTP郵件發(fā)送類,實例分析了php實現(xiàn)smtp郵件發(fā)送類的原理與技巧,以及支持SSL連接的方法,需要的朋友可以參考下2015-03-03
PHP中獲取內(nèi)網(wǎng)用戶MAC地址(WINDOWS/linux)的實現(xiàn)代碼
做一個內(nèi)網(wǎng)根據(jù)MAC地址自動登錄的應(yīng)用,在WINDOW 2003可以正常使用,函數(shù)如下2011-08-08
PHP實現(xiàn)將顏色hex值轉(zhuǎn)換成rgb的方法
這篇文章主要介紹了PHP實現(xiàn)將顏色hex值轉(zhuǎn)換成rgb的方法,涉及PHP針對字符串與數(shù)組的數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下2016-05-05

