我有一个数组,它存储对单个匿名函数的多个引用:
$fns = array();
//some code
$fn = function(){
echo 'this is closure 12345... < 67890';
// etc etc..
};
for($x=12345; $x<67890; ++$x){
$fns[$x] = $fn;
}
可以看出,我们只创建了一个匿名函数。
如果我们把函数声明放在循环里面呢?:
$fns = array();
//some code
for($x=12345; $x<67890; ++$x){
$fns[$x] = function(){
echo 'this is closure 12345... < 67890';
// etc etc..
};
}
引擎是否足够智能以识别只需要创建一个对象?
上面的代码是只创建一个对象还是每次迭代都创建一个对象?
(问题针对 HHVM 和 Zend Engine。)