不懂块级,用函数变量与全局变量来交个作业。和自己的理解。

Original 2019-04-25 13:53:21 230
abstract:<?php $a1 = '3'; $b1 = '4';function add($a ,$b) {        echo $a.'<hr>';     //函数变量。可以输出 输出结果1        echo

<?php

 $a1 = '3';

 $b1 = '4';

function add($a ,$b) {

        echo $a.'<hr>';     //函数变量。可以输出 输出结果1

        echo ($GLOBALS['a1']).'<hr>';   //全局变量,不可以在函数,添加来$GLOBALS[]后。可以输出a1的值为3

        echo $a1.'<hr>';    //全局变量,不可以在函数,需要$GLOBALS[]调用全局变量到函数内使用才可以输出

        echo $b.'<hr>';     //函数变量。可以输出 输出结果2

        echo $b1.'<hr>';    //全局变量,不可以在函数内输出,需要$global[]调用全局变量到函数内使用才可以输出

    }

echo $a.'<hr>';     //因为是函数变量。因此不可输出

echo $a1.'<hr>';    //全局变量。可以输出,结果:3

echo $b.'<hr>';     //因为是函数变量。因此不可输出

echo $b1.'<hr>';    //全局变量。可以输出,结果:4

add('1','2');



// 输出结果:

//     输出顺序先输出函数外:

//             1:echo $a.'<hr>';   报错。

//             2:echo $a1.'<hr>';  输出结果:3。

//             3:echo $b.'<hr>';   报错。

//             4:echo $b1.'<hr>';  输出结果:4.

//     再输出函数内:

//             1:echo $a.'<hr>';                  输出结果:1

//             2:echo ($GLOBALS['a1']).'<hr>';    输出结果3。

//             3:echo $a1.'<hr>';                 报错。

//             4:echo $b.'<hr>';                  输出结果:2   

//             5:echo $b1.'<hr>';                 报错。


我能理解的就是这么多了。。块级完全没概念。感觉理论应该适合函数作用域是一个道理的。应该是会导致无法调用。解决办法就是$GLOBALS[]来调用,也可以用传参和 use来调用。不知道这样理解对不对。

匿名函数我的理解是:就是把一个没有名字的函数赋值给一个变量,通过变量来调用这个函数。同时因为这个函数封闭在这个变量里了。所以叫闭包。

Correcting teacher:西门大官人Correction time:2019-04-26 13:30:40
Teacher's summary:匿名函数就是没有名字的函数,可以把这个函数赋值给一个变量,也可以不赋值给一个变量 如有的回调函数。

Release Notes

Popular Entries