Returning bool from comparison function is deprecated¶
Description¶
The comparison function should return 0, 1 or -1, and not just booleans. 1 means that $a > $b
, -1 that $a < $b
and 0 means that $a === $b
. This is a richer information than boolean, and it also fits very well with the spaceship operator <=>
.
Example¶
<?php
function mySort(int $a, int $b) : bool {
return $a > $b;
}
$array = [1,2,3,4,5,6,7,8,9,10];
usort($array, mySort(...));
?>
Solutions¶
Set the returntype of the comparison function to int.
Use the spaceship operator as possible.
Cast the result to integer.