我们在编写复杂的业务逻辑中,经常需要对数组做循环处理。例如:
$array = [
'crazymus', 'tom', 'jim'
];
foreach ($array as $key => $value) {
echo $key, PHP_EOL;
echo $value, PHP_EOL;
}
但是这样有个不好的地方,会引入一些不必要的变量,如$key和$value。编程中有个原则就是尽可能减少上下文中的变量数目,以免出现变量覆盖的风险。
我们可能封装一个方法来完成,但是对于一个复用性不大的逻辑,封装的意义不大。
于是,PHP的call_user_func和匿名函数就登场了!
$array = [
'crazymus', 'tom', 'jim'
];
call_user_func(function () use ($array ){
foreach ($array as $key => $value) {
echo $key, PHP_EOL;
echo $value, PHP_EOL;
}
});
$key和$value就像是一个封闭空间里产生的变量,对外部没有影响,这样我们可能随意创建变量,也不用担心和外部变量出现冲突了~