函数在linux服务器上给出错误

时间:2011-02-16 20:42:04

标签: php windows linux

我正在使用我在php.net上找到的功能(我认为)根据值对数组进行排序

usort($comments, function ($a, $b) { return $b["date"] - $a["date"]; });

它应该把更新的日期放在第一位。在windows localhost上工作正常,在linux服务器上出错。为什么?谁能给我一个替代品?

3 个答案:

答案 0 :(得分:3)

你可能正在使用PHP版本< 5.3在你的Linux上。匿名函数仅适用于最新的PHP版本。

function mySort($a, $b) { return $b["date"] - $a["date"]; }

usort($comments, 'mySort');

答案 1 :(得分:3)

可能是因为您的服务器不运行PHP 5.3并且lambda functions仅在此之后可用。你得到什么错误?

通常,代码看起来是正确的。 PHP的工作版本< 5.3将是:

function custom_sort($a, $b) {
    return $b["date"] - $a["date"];
}

usort($comments, "custom_sort");

答案 2 :(得分:2)

我的猜测:你的Windows服务器正在运行PHP 5.3。您的Linux服务器运行的是旧版本。 PHP 5.3中添加了对匿名函数的支持。