2011-02-16 23 views
0

我使用一個功能我在php.net(我認爲)發現基於值排序數組函數給出錯誤的Linux服務器上

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

它應該把新的日期first.Works剛在Windows本地主機罰款,給Linux服務器上的錯誤。爲什麼?任何人都可以給我一個替換?

回答

3

您可能在您的Linux上使用PHP版本< 5.3。匿名功能僅適用於最新的PHP版本。

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

usort($comments, 'mySort'); 
+0

那是真的。我想知道。我的服務器運行在PHP 5.2謝謝 – andrei 2011-02-16 20:56:31

2

我的猜測:你的Windows服務器運行的是PHP 5.3。您的Linux服務器正在運行較舊的版本。在PHP 5.3中添加了對匿名函數的支持。

3

可能因爲您的服務器不運行PHP 5.3而lambda functions僅在此之後纔可用。你會得到什麼錯誤?

通常,代碼看起來是正確的。 PHP < 5.3的工作版本應該是:

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

usort($comments, "custom_sort"); 
相關問題