이 usort ()-함수가 일부 버전의 PHP에서 실패하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/561734

  •  05-09-2019
  •  | 
  •  

문제

우리는 개발 시스템 (PHP 5.2.8)에서 잘 작동하는 USORT와 관련된 코드를 작성했지만 라이브 시스템 (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'));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top