PHPにはsetlocale関数があります。この関数には警告メッセージがあります
ロケール情報は、スレッドごとではなく、プロセスごとに保持されます。Windows 上の IIS や Apache などのマルチスレッド サーバー API で PHP を実行している場合、スクリプト自体が setlocale() を呼び出すことはありませんが、スクリプトの実行中にロケール設定が突然変更されることがあります。これは、同じプロセスの異なるスレッドで同時に実行されている他のスクリプトが原因で発生し、setlocale() を使用してプロセス全体のロケールを変更します。
たとえば、miltithread 設定の Windows 用の apache です。PHP プロジェクトで次のコード行を見つけました。
# ifdef PHP_WIN32
_configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
# endif
このコードが機能する場合、setlocale 関数の警告に注意する必要があるのはなぜですか?