美文网首页
PHP变量的作用域和静态变量

PHP变量的作用域和静态变量

作者: 陈智涛 | 来源:发表于2017-10-24 16:27 被阅读0次

    1、什么是变量的作用域

    变量的作用域就是变量的范围,变量的范围即它定义的上下文背景(即它的生效范围),大部分PHP变量只有一个单独的范围,这个单独的范围跨度包含了include和require引入的文件
    示例:

    <?php
    $outer = 'str';
    function myFunc(){
        var_dump($outer);//打印为NULL,内部为局部变量
    }
    myFunc();
    

    内部函数想要引用外部变量可以引入global关键字

    <?php
    $outer = 'str';
    function myFunc(){
        global $outer;
        var_dump($outer);//打印为NULL,内部为局部变量
    }
    myFunc();
    

    2、什么是静态变量

    静态变量仅在局部函数域中存在,当函数执行离开此作用域时,其值不会消失。

    • static
      1.仅初始化一次
      2.初始化时需要赋值
      3.每次执行函数该值会保留
      4.static修饰的函数仅在函数内部有效
      5.可用于记录函数调用次数,从而在某些条件下终止递归
      示例1:
    <?php
    function myFunc(){
        static $a = 1;
        echo $a++;
    }
    myFunc();//1
    myFunc();//2
    myFunc();//3
    

    示例2:

    <?php
    $count = 5;
    function getCount()
    {
        static $count;
        return $count++;
    }
    echo $count;//5
    ++$count;
    echo getCount();//第一次调用,初始化为NULL,NULL++为1 由于是后++,第一次返回NULL
    echo getCount();//第二次调用,count = 1
    echo "\n";
    

    运行结果:

    5 1
    

    3、函数的引用

    示例:

    <?php
    function &myFunc(){
        static $b = 10;
        return $b;
    }
    $a = myFunc();
    $a = &myFunc();
    $a = 100;
    echo myFunc();//100
    

    相关文章

      网友评论

          本文标题:PHP变量的作用域和静态变量

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