美文网首页
关于PHP中的global语法的深入理解

关于PHP中的global语法的深入理解

作者: DQ_5e1b | 来源:发表于2018-06-01 07:29 被阅读0次

    global语法原理:

    在函数中global某个外部变量,即传递了一个引用进来,通俗的说,就是引入了外部变量的值,但是当改变引入的变量值时,外部同名变量值也会改变。

    如下代码:

    $globalStr = '.net';

    function globalTest(){

     global $globalStr;

     $globalStr = 'jb51'.$globalStr;

     unset($globalStr);   //释放变量$globalStr,作用范围为函数内部.,也就是说在函数内部消除掉这个变量;                

    }

    globalTest();

    echo $globalStr; 

    最终输出为jb51.net,也就是说和函数内部同名的外部变量globalStr值也改变了。

    但是也有特殊情况。

    如下代码:

    $var1 = 1;

    $var2 = 2;

    function test()

    {

    global $var1,$var2;

    $var1 = &$var2;     //注意这里用的符号&

    }

    test();

    echo $var1

    ?>

    此时这里输出1.

    在这里函数中将$var2赋值给$var1时用了&符号,指的是不仅赋值了,而且此时$var1和$var2引用的是同一个外部同名变量$var2,也就是说此时$var1引用的外部变量改变为$var2,不再是$var1.所以此时改变函数内部$var1的值时,外部同名变量$var1的值不会改变,相反,外部同名变量$var2的值会随着内部$var1的值改变而改变,也会随着内部$var2的值改变而改变。也就是说此时外部变量$var2的值有函数内部两个变量$var1和$var2同时操作;

    如下所示:

    $var1=1;

    $var2=2;

    function test(){

    global $var1,$var2;

    $var1 = &$var2;  //这部操作之后$var1将失去操作外部同名变量$var1的值得能力而获得操作外部变量$var2的值的能力;

    $var1 = 3;//此时外部变量$var2的值改变为3

    $var2 = 4;//此时外部变量$var2的值改变为4,也就是两个内部变量操作外部同一个变量了

    }

    global test();

    echo $var1;

    echo $var2;

    此时输出的值$var1为1,$var2的值为4.

    补充:unset() 销毁指定的变量,isset() 检测变量是否设置         例:isset($var)   变量$var不存在或值为NULL,返回FALSE;其余返回TRUE;

    相关文章

      网友评论

          本文标题:关于PHP中的global语法的深入理解

          本文链接:https://www.haomeiwen.com/subject/zthhsftx.html