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

PHP变量作用域及静态变量

作者: 陈智涛 | 来源:发表于2017-09-02 14:32 被阅读0次

    1.读程题

    <?php
    
    /**
     * 写出如下程序的输出结果:
     * <?php
     *
     * $count = 5;
     * function get_count()
     * {
     *     static $count;
     *     return $count++;
     * }
     * echo $count;
     * ++$count;
     *
     * echo get_count();
     * echo get_count();
     * 
     * ?>
     *
     */
    
    $count = 5;
    function get_count()
    {
        static $count;  
        return $count++;
    }
    
    echo $count;//输出5
    ++$count;//count 变成6
    
    echo get_count();// 静态变量 未初始化 所以为NULL echo为空,++变成1
    echo get_count();//输出1
    
    //输出结果:51 这里还考了前++和后++  如果把上一题改为前++ 则输出:512
    
    • 考点:
      作用域变量个静态变量

    变量的作用域

    变量的作用域就是变量的生效的范围,大部分PHP变量只有一个单独的范围,这个单独的范围同样包括了include 和 require 引入的文件

    <?php
    $outer = 'hello world';//全局变量
    function myFunc(){
        
        echo "output ".$outer."\n";//输出是空   因为是局部变量
    }
    myFunc();
    ?>
    
    

    使用global引入或者超全局变量$GLOBALS

    <?php
    $outer = 'hello world';
    function myFunc(){
        global $outer;
        echo "output ".$outer."\n";//输出是 hello world 因为引入了全局变量
    }
    myFunc();
    ?>
    
    
    <?php
    $outer = 'hello world';
    function myFunc(){
        // global $outer;
        $outer = $GLOBALS['outer'];
        echo "output ".$outer."\n";//输出是 hello world 因为引入了全局变量
    }
    myFunc();
    ?>
    

    静态变量

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

    屏幕快照 2017-09-02 下午2.20.52.png 屏幕快照 2017-09-02 下午2.21.47.png

    相关文章

      网友评论

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

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