php - funktion giver fejl på linux server

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger en funktion, jeg fandt på php.net (jeg tror) for at sortere en matrix baseret på en værdi


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


Det skal sættes nyere datoer først. Fungerer fint på windows localhost, giver fejl på linux server. Hvorfor? Kan nogen give mig en erstatning?

Bedste reference


Du bruger sandsynligvis en PHP-version < 5.3 på din Linux. Anonyme funktioner er kun tilgængelige på de nyeste PHP-versioner.


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

usort($comments, 'mySort');

Andre referencer 1


Sandsynligvis fordi din server ikke kører PHP 5.3, og lambda-funktioner er kun tilgængelige siden da. Hvilken fejl får du? [4]


Generelt ser koden korrekt ud. En arbejdsversion til PHP < 5.3 ville være:


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

usort($comments, "custom\_sort");

Andre referencer 2


Mit gæt: Din Windows-server kører PHP 5.3. Din Linux-server kører en ældre version. Støtte til anonyme funktioner blev tilføjet i PHP 5.3.