在PHP的函數中,global語法是比較常見的,大家一定都知道一旦在函數中global了某個外部變量后,這個變量就可以在這個函數中使用了,但是也有不少網友不知道這是一個什么實現原理?,F在上一個例子,大家一看就知 " /> 欧美日韩国产精品,午夜高清福利,欧美成在线视频

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

深入理解PHP中的global

一、實現原理
php的函數中,global語法是比較常見的,大家一定都知道一旦在函數中global了某個外部變量后,這個變量就可以在這個函數中使用了,但是也有不少網友不知道這是一個什么實現原理?,F在上一個例子,大家一看就知道了:
復制代碼 代碼如下:
$globalStr = '.NET';

function globalTest(){

 global $globalStr;

 $globalStr = 'jb51'.$globalStr;

 unset($globalStr);

}

globalTest();

echo $globalStr; //輸入: jb51.NET

從這個例子看出global了一個變量就等于傳遞了一個引用進來。這樣理解的話,下面的代碼輸出結果就不難理解了。

二、php中global的作用 
復制代碼 代碼如下:
global $var1,$var2;

就是外部變量的同名引用,變量本身的作用范圍仍然在函數體內。改變這些變量的值,外部的同名變量自然也改變。但一旦用了&,那么變量將不再是同名引用。
復制代碼 代碼如下:
<?php
$var1 = 1;
$var2 = 2;
function test()
{
    global $var1,$var2; // 作用范圍在函數體內
    $var1 = 3;
}
test();
echo $var1;
?>
結果是 3。因為是同名引用。
 復制代碼 代碼如下:
<?
$var1 = 1;
$var2 = 2;
function test()
{
    global $var1,$var2;
    $var1 = &var2;
}
test();
echo $var1
?>
結果是1。因為在函數內的$var1經過賦值后與$var2具有相同的引用了。進一步看下面的代碼。
 復制代碼 代碼如下:
<?php 
$var1 = 1;   
$var2 = 2;   
function test_global()   
{   
    global $var1,$var2;   
    $var1=&$var2;   
    $var1=7;   
}
test_global();   
echo $var1;   
echo $var2;
?>
結果是1和7。因為在函數內的$var1與$var2具有相同的引用。因此改變了$var1的值,$var2的值夜作了改變。

php技術深入理解PHP中的global,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 大量出精汇编免费看 | 国产精品区网红主播在线观看 | 中文字幕精品一区二区日本 | 国产对白91色拍高清精品 | 福利精品视频 | 国产成人一区在线播放 | 中文字幕乱码二三区免费 | 一区卡二区卡三区卡视频 | 亚洲精品美女久久久久 | 欧美激情二区 | 中文国产成人精品少久久 | 国产一区二区精品在线观看 | 美女一区二区三区 | 巨大巨粗巨长 黑人长吊视频 | 性欧美zoz0另类xxxx | 日本精品一区二区三区在线观看 | 国产日韩精品一区二区三区 | 涩视频成人永久免费观看网站 | 国产免费播放一区二区三区 | 久久精品无码一区二区日韩av | 五月开心激情网 | 悠悠色影院 | 国产高清一区 | 黄色片网站在线免费观看 | 桃花视频在线观看高清版mv | 色老板免费视频 | 视频一区 国产 | 又黄又爽的男女视频 | 怡红院亚洲红怡院在线观看 | 美女一区二区三区 | 国产美女一级特黄毛片 | 国产日韩欧美精品一区二区三区 | 国产成人精品一区二区三在线观看 | 日本理论午夜中文字幕第一页 | 亚洲a在线观看 | 99久久国产综合精品网成人影院 | 国内高清自拍 | 乱码一区 | 一二三区在线视频 | 久久亭亭 | 一级做a爰片久久毛片武则天 |