开发者社区 问答 正文

请问这里参数的传递顺序是怎样的?

 <?php 

    function sortByLen( $one, $two ) {  
        if ( strlen( $one ) == strlen( $two ) ) 
            return 0;
        else        
            return ( strlen( $one ) > strlen( $two ) ) ? 1 : -1;  
    }

    $lamp = array( "Linux", "Apache", "MySQL", "PHP" ); 

    usort( $lamp, "sortByLen" );            
    print_r( $lamp );    

?>

排序后输出:Array ( [0] => PHP [1] => MySQL [2] => Linux [3] => Apache )
这里参数传入变量函数里的顺序是怎样的?
01
02
03
这样两个两个传进去比较的
还是
01
12
23
这种类似的方式传进去的
请问传递的依据又是什么呢?

展开
收起
小旋风柴进 2016-03-09 12:52:45 2085 分享 版权
1 条回答
写回答
取消 提交回答
  • 你定义了一个比较函数,比较字符串的长度,并且作为参数传给排序函数。
    排序函数根据此比较两个变量的大小,自然排序的结果是根据长度排序。
    php因为只有3个字符,排最前,而apache有六个字符,排最后。

    你说的排序函数内是怎么调用这个比较函数的,以及调用多少次,这个取决于排序算法的内部实现。

    2019-07-17 18:55:48
    赞同 展开评论