لماذا تفشل وظيفة المستخدم () في بعض إصدارات PHP؟

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

  •  05-09-2019
  •  | 
  •  

سؤال

كتبنا بعض التعليمات البرمجية التي تنطوي على 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;
}        

على أنظمتنا الحية، يعرض هذا مجموعة فرز تعسفا تماما، يتم إزعاج النظام الأصلي، ولكن لا يزال غير مرتبة حسب المسافة.

لا يمكنني العثور على أي إشارة إلى علة PHP ثابتة بين 5.2.0 و 5.2.8 ذات صلة بهذه المشكلة.

أين قد تأتي هذه المشكلة؟ هل يمكنني إصلاح هذا القصير في كتابة وظيفة الفرز بنفسي؟

هل كانت مفيدة؟

المحلول

يعتقد الوحيد الذي يمكنني التفكير فيه هو أنه يجب أن تستخدم هذا:

usort($locations, array('Interpolator', 'sortByDistance'));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top