美文网首页
PHP基础学习 - day 3

PHP基础学习 - day 3

作者: 飞牛在天 | 来源:发表于2021-05-15 15:36 被阅读0次
    <?php
    // 变量作用域
    /**
    1. local作用域
    2. global作用域
    3. static作用域
    4. parameter作用域
    */
    
    // local作用域,随着函数的结束而销毁。
    
    function test() {
        // local scope
        $name = 'zhangsan';
    
        echo $name . PHP_EOL;
    }
    test();
    
    
    
    // global scope定义,在函数外面定义
    
    $name = 'lisi';
    
    function test2() {
        // global变量 需要声明一下才可以访问
        global $name;
        echo 'name is ' . $name . ' in test2 function.' . PHP_EOL;
        // 修改全局变量
        $name = 'wangmazi';
    }
    
    function test3() {
        global $name;
        echo 'name is ' . $name . ' in test3 function.' . PHP_EOL;
    }
    
    test2();
    test3();
    
    
    // php内部会把所有的global变量,都存储在GLOBALS全局数组中,索引是global变量的名字
    // 例如 global $name变量实际上是存储在$GLOBALS['name']中的。
    echo 'global name = ' . $GLOBALS['name'] . PHP_EOL;
    
    // static作用域, 在函数退出之后,再次调用时,static变量会记住上一次的值
    // static仍然是一个局部变量,在外部无法访问到
    
    function test4() {
        static $counter = 0;
    
        echo 'counter is ' . $counter . PHP_EOL;
    
        $counter = $counter + 1;
    }
    
    
    
    test4();
    
    test4();
    
    test4();
    
    // static $counter是在test4 function内部定义的,属于局部变量,在函数外部无法访问
    echo 'counter is ' . $counter . PHP_EOL;
    
    
    // parameter scope
    // $x和$y属于参数作用域,随着函数的结束而销毁。
    function test5($x, $y) {
    
        echo 'parameter 1 is ' . $x . PHP_EOL;
        echo 'parameter 2 is ' . $y . PHP_EOL;
    }
    
    ?>
    
    

    相关文章

      网友评论

          本文标题:PHP基础学习 - day 3

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