【发布时间】:2013-07-11 07:34:50
【问题描述】:
我正在使用 en_US 语言环境和这段 PHP 代码的机器上
setlocale(LC_ALL,'de_DE.utf8');
var_dump((string)1.234);
返回
string(5) "1.234"
而在我同事的具有德语语言环境的机器上,它返回
string(5) "1,234"
为什么 PHP 在将浮点类型转换为字符串时使用语言环境?我怎样才能禁用它?我想让这个函数在所有机器上返回 string(5) "1.234",不管任何区域设置。
第二个不太重要的问题:为什么 PHP 会忽略我机器上的 setlocale?
【问题讨论】:
-
它不会忽略 setlocale,您必须安装 locale,(在 windows 中不起作用)检查 setlocale 的返回值,如果它为 FALSE,那么您没有 locale。
-
@DevZer0.. 对,我猜它只是没有安装在我的机器上......
-
php.net/setlocale 有一个返回值,您没有在问题代码中检查它,因此我们无法告诉您区域设置是成功还是被忽略。