为什么会出现这种usort() - 功能失效的某些版本的PHP?
题
我们写了一些代码,涉及usort这对我们的发展系统(PHP 5.2.8)工作正常,但遇到我们的直播系统(PHP 5.2.0)一个问题:
// Sort by distance
usort($locations, 'Interpolator::sortByDistance');
调用该方法(在同一类内插器内):
private static function sortByDistance($a, $b) {
$return = 0;
if($a['distance'] > $b['distance']) {
$return = 1;
} else if ($a['distance'] < $b['distance']) {
$return = -1;
}
return $return;
}
在我们的实时系统中,这将返回一个完全任意排序阵列的原始顺序被打乱,但仍然没有通过距离来分类的。
我不能找到固定5.2.0和有关这一问题5.2.8之间的PHP错误的任何参考。
可能在哪里这个问题可以是从哪里来的?我可以解决这个短写的排序功能自己?
解决方案
在只想到我能想到的是,你应该使用这样的:
usort($locations, array('Interpolator', 'sortByDistance'));
不隶属于 StackOverflow