Вызов переопределенного родительского метода

Использование вашего примера с кодовой страницей 1252 отлично работало на моей машине разработки Windows.

$array=array('Birnen', 'Äpfel', 'Ungetüme', 'Apfel', 'Ungetiere', 'Österreich');
$oldLocal=setlocale(LC_COLLATE, "0");
var_dump(setlocale(LC_COLLATE, 'German_Germany.1252'));
usort($array, 'strcoll');
var_dump(setlocale(LC_COLLATE, $oldLocal));
var_dump($array);

... snip ...

Это было с PHP 5.2.6. Кстати. Вышеприведенный пример неверен, он использует кодировку ASCII вместо UTF-8. Я проследил вызовы strcoll () и посмотрел, что я нашел:

function traceStrColl($a, $b) {
    $outValue = strcoll($a, $b);
    echo "$a $b $outValue\r\n";
    return $outValue;
}

$array=array('Birnen', 'Äpfel', 'Ungetüme', 'Apfel', 'Ungetiere', 'Österreich');
setlocale(LC_COLLATE, 'German_Germany.65001');
usort($array, 'traceStrColl');
print_r($array);

дает:

Ungetüme Äpfel 2147483647
Ungetüme Birnen 2147483647
Ungetüme Apfel 2147483647
Ungetüme Ungetiere 2147483647
Österreich Ungetüme 2147483647
Äpfel Ungetiere 2147483647
Äpfel Birnen 2147483647
Apfel Äpfel 2147483647
Ungetiere Birnen 2147483647

Я нашел некоторые сообщения об ошибках , которые были отмечены как bogus ... Лучшая ставка у вас есть подача отчета об ошибке, я полагаю, хотя ...

24
задан Andrew Kozak 30 November 2017 в 18:48
поделиться