自执行函数模拟一个块级作用域

Original 2019-04-23 16:24:28 113
abstract:<?php function demo(){     $fun = function(){         $arr = [1,2,3,4,5];       &n
<?php
function demo(){
    $fun = function(){
        $arr = [1,2,3,4,5];
        for($i=0;$i < count($arr);$i++){
            $temp = $arr[$i];
        }
        echo isset($temp)? '能访问作用域内的循环变量' : '不能访问作用域内的循环变量';
        echo '<br>';
    };
    $fun();
    echo isset($temp)? '能访问作用域内的循环变量' : '不能访问作用域内的循环变量';
}
demo();


Correcting teacher:天蓬老师Correction time:2019-04-24 15:30:55
Teacher's summary:几乎所有的脚本语言, 都是只支持函数作用域, 这与代码的运行形式相关, 因为内部数据都在栈中的... php也是只支持函数作用域, 不像其它语言, 支持块作用域, 所谓块作用域, 就是由一对大括号生成的作用域, 使用闭包可以模拟出一个块作用域...

Release Notes

Popular Entries