首页 > 代码库 > php闭包

php闭包

用个简单的例子开始,有下面个数组: $nums = array(10, 20, 30, 40);需要找出数组中大于 15 的项。那么,不考虑闭包的情况下,我们或许会这样写: $res = array();foreach ($nums as $n) { if ($n > 15) { $res[] = $n; }}

有闭包的支持

$res = array_filter($nums, function($v) { return $v > 15; });

目前看来感觉都还不错,那么我们再的题目增加点难度:找到所有大于 15 的项, 然后乘以 2 再加上作用域中的的某个变量值以后再返回。 

返璞归真,这时还是得返回老土的思路去解决问题: 

$x = 1;$res = array();foreach ($nums as $n) { if ($n > 15) { $res[] = $n * 2 + $x; }}

 

php闭包