我们 在 PHP 中有setlocale函数。此功能有警告信息
语言环境信息是按进程维护的,而不是按线程维护的。如果您在 Windows 上的 IIS 或 Apache 等多线程服务器 API 上运行 PHP,您可能会在脚本运行时遇到语言环境设置的突然更改,尽管脚本本身从未调用 setlocale()。这是由于其他脚本同时在同一进程的不同线程中运行,使用 setlocale() 更改了进程范围的语言环境。
例如,具有多线程设置的 Windows 的 apache。我在 PHP 项目中找到了这些代码行:
# ifdef PHP_WIN32
_configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
# endif
如果此代码有效,为什么我们必须关心 setlocale 函数的警告?