中未找到闭包的基本lambda函数


Fatal error: Base lambda function for closure not found in

我正在制作Magento -企业版。

我得到了一个致命错误:

当我对过滤器属性应用基于产品计数的sort函数以按产品计数排序时,在" in filters "中找不到闭包的基本lambda函数

代码:

<?php 
$items = $this->getItems();
uasort($items, function($a,$b) {
    return ($a->getCount() - $b->getCount())* -1;
});
?>

请帮我解决这个问题。谢谢你。

Lambda函数在Magento中不能正常工作。下面是解决方案:
1)添加功能到一些助手,例如您的扩展:

protected static function _compare($a, $b){
    return ($a->getCount() - $b->getCount())* -1;
}
2)使用下一个格式:
uasort($items, array('Your_Extension_Helper_Data', '_compare'));

这将工作,即使启用APC缓存。

另一个变体:add _compare函数到当前文件中你想要使用的是sort,在这种情况下它看起来像:

uasort($items, array($this, '_compare'));

uasort($items, array('Name_Of_Your_Class', '_compare'));