В PHP «Класс NumberFormatter» отделен от функции setlocale ()? - PullRequest
1 голос
/ 22 января 2020

Посмотрите здесь: https://www.php.net/manual/en/function.setlocale.php

Информация о локали поддерживается для каждого процесса, а не для каждого потока. Если вы запускаете PHP на многопоточном серверном API, таком как IIS, HHVM или Apache на Windows, вы можете столкнуться с внезапными изменениями настроек локали во время выполнения скрипта, хотя сам скрипт никогда не вызывал setlocale (). Это происходит из-за того, что другие сценарии выполняются в разных потоках одного и того же процесса в одно и то же время, меняя локаль всего процесса с помощью setlocale ().

Этот абзац делает невозможным использование setlocale (на 100%) ) насколько я понимаю. Я понятия не имею, как они могли спроектировать это так плохо, нехорошо. Его нельзя безопасно использовать, как описано.

Что мне сейчас интересно, так это то, что класс NumberFormatter в https://www.php.net/manual/en/class.numberformatter.php полностью отделен от setlocale ()? Как, например, это не просто «обтекание», что, в конце концов, вызов setlocale ()? У него нет серьезной ошибки, указанной выше?

...