php闭包(匿名函数)
php闭包,也叫匿名函数,和普通变量的赋值方法是一样的,最后要加上分号;
如果你需要延迟绑定use里面的变量,你就需要使用引用,否则在定义的时候就会做一份拷贝放到use中:1
2
3
4
5
6
7
8$num = 0;
$one = function() use($num) {echo $num;};
$two = function() use(&$num) {echo $num;};
$num++;
$one();//输出0
$two();//输出1
使用场景:
使用场景以底层框架为主,实际应用中用的较少。
自动加载
1
2
3
4spl_autoload_register(function($class){
$class = str_replace('\\', '/', $class);
require_once $class;
});循环,代替foreach
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41$arr = ['a', 'b', '1', 0, 'ads', 'dsasa'];
$arr = array_map(function($value){
return $value . '_aaa';
}, $arr);
print_r($arr);
/*
Array
(
[0] => a_aaa
[1] => b_aaa
[2] => 1_aaa
[3] => 0_aaa
[4] => ads_aaa
[5] => dsasa_aaa
)
*/
$arr = ['a', 'b', '1', 0, 'ads', 'dsasa'];
array_walk($arr, function(&$value, $key){
echo $key . ' => ' . $value . "\n";
$value = $value . '_aaa';
});
print_r($arr);
/**
0 => a
1 => b
2 => 1
3 => 0
4 => ads
5 => dsasa
Array
(
[0] => a_aaa
[1] => b_aaa
[2] => 1_aaa
[3] => 0_aaa
[4] => ads_aaa
[5] => dsasa_aaa
)
**/