cxs7225032 发表于 2017-3-20 12:16:14

php闭包实验

class IArray extends ArrayObject
{      
static function make($array)      
{         
return new self($array);      
}
function map($func)      
{         
$res = new self();
foreach ($this as $k => $v)   
{   
$res[$k] = $func($k, $v);         
}
return $res;      
}
function filter($func)      
{         
$res = new self();
foreach ($this as $k => $v)   
{            
if ($func($k, $v))   
{                  
$res[$k] = $v;            
}      
}
return $res;      
}
}
$nums = array(10,20,30,40);
$res = IArray::make($nums)->filter(function($k, $v) { return $v > 15; })->map(function($k, $v) { return $v * 2; });
print_r($res);
页: [1]
查看完整版本: php闭包实验