雖然這看起來很明顯,但如果陣列中*至少沒有兩個值*,則使用者定義的陣列排序函式 ( uksort(), uasort(), usort() ) 將*不會*被呼叫。
以下程式碼
<?php
function usortTest($a, $b) {
var_dump($a);
var_dump($b);
return -1;
}
$test = array('val1');
usort($test, "usortTest");
$test2 = array('val2', 'val3');
usort($test2, "usortTest");
?>
將輸出
string(4) "val3"
string(4) "val2"
第一個陣列沒有被傳送到函式。
請勿在這些函式中放置任何修改值或應用非排序業務邏輯的程式碼,因為它們並不會每次都被執行。