致命错误:找不到封闭的基本lambda函数

时间:2014-07-21 06:07:26

标签: php magento lambda

我正在开发 Magento - Enterprise Edition。

我得到了一个致命的错误:

  

基于产品数量排序时,我根据产品数量为过滤器属性应用uasort函数时,在过滤器中找不到基本lambda函数

代码:

<?php 

$items = $this->getItems();

uasort($items, function($a,$b) {
    return ($a->getCount() - $b->getCount())* -1;
});

?>

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

1 个答案:

答案 0 :(得分:0)

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缓存,也可以使用。

另一种变体:将_compare函数添加到要使用uasort的当前文件中,在这种情况下它将如下所示:

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

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