深⼊理解PHP中的global
⼀、实现原理
在PHP的函数中,global语法是⽐较常见的,⼤家⼀定都知道⼀旦在函数中global了某个外部变量后,这个变量就可以在这个函数中使⽤了,但是也有不少⽹友不知道这是⼀个什么实现原理。现在上⼀个例⼦,⼤家⼀看就知道了:
复制代码代码如下:
$globalStr = '';
function globalTest(){
global $globalStr;
$globalStr = 'jb51'.$globalStr;
unset($globalStr);
}
globalTest();php延时函数
echo $globalStr; //输⼊: jb51
从这个例⼦看出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的值夜作了改变。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。