解析错误:语法错误,在低于 5.3 的 PHP 上使用 Rocketeer 使用匿名函数调用 uksort() 时出现意外的 T_FUNCTION

问题描述 投票:0回答:2

使用匿名回调函数调用

uksort()
时,出现解析错误:“语法错误,意外的 T_FUNCTION”。

uksort($actions, function($a, $b) {
    if (strlen($a) == strlen($b)) {
        return 0;
    }
    if (strlen($a) > strlen($b)) {
        return -1;
    }
    return 1;
}

这里出了什么问题?

php sorting anonymous-function parse-error
2个回答
0
投票

您运行的 PHP 版本早于 5.3,其中不存在匿名函数。


0
投票
function cmp($a, $b){
    if(strlen($a) == strlen($b)) {
        return 0;
    }
    if(strlen($a) > strlen($b)) {
        return -1;
    }
    return 1;
 }

 uksort( $actions, "cmp" );

你不能使用闭包,因为你的版本必须更新或相同

5.3
... 这就是为什么您必须将函数名称作为字符串传递的原因;)

© www.soinside.com 2019 - 2024. All rights reserved.