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:匿名函数就是没有名字的函数,可以把这个函数赋值给一个变量,也可以不赋值给一个变量 如有的回调函数。