我正在尝试在我的本地机器上将 php7.2 升级到 php7.4。我注意到 localeconv() 函数从每个版本返回不同的值。
PHP7.2 输出:
Array
(
[decimal_point] => .
[thousands_sep] =>
[int_curr_symbol] =>
[currency_symbol] =>
[mon_decimal_point] =>
[mon_thousands_sep] =>
[positive_sign] =>
[negative_sign] =>
[int_frac_digits] => 127
[frac_digits] => 127
[p_cs_precedes] => 127
[p_sep_by_space] => 127
[n_cs_precedes] => 127
[n_sep_by_space] => 127
[p_sign_posn] => 127
[n_sign_posn] => 127
[grouping] => Array
(
)
[mon_grouping] => Array
(
)
)
PHP7.4 输出:
Array
(
[decimal_point] => .
[thousands_sep] => ,
[int_curr_symbol] => EUR
[currency_symbol] => €
[mon_decimal_point] => ,
[mon_thousands_sep] => .
[positive_sign] =>
[negative_sign] => -
[int_frac_digits] => 2
[frac_digits] => 2
[p_cs_precedes] => 1
[p_sep_by_space] => 1
[n_cs_precedes] => 1
[n_sep_by_space] => 1
[p_sign_posn] => 1
[n_sign_posn] => 1
[grouping] => Array
(
[0] => 3
[1] => 3
)
[mon_grouping] => Array
(
[0] => 3
[1] => 3
)
)
我没有找到任何 php 配置来设置小数分隔符的默认值,我知道存在 number_format() 函数,但我需要全局设置。
我以为我错误地更改了一些配置,所以我删除并重新安装了 PHP7.4,但输出仍然相同。
我也尝试使用 PHP8.0,输出与 PHP7.2 相同
此时,我检查了我的生产服务器,所有版本(7.2、,7.4、8.0)都有相同的输出。
我猜我的本地机器上有一些 PHP7.4 的配置,但我找不到在哪里以及如何更改它。
问题仅在于我在控制台中运行脚本时:php test.php
,当我使用 nginx 和 php7.4-fpm 测试它时,我得到与 7.2 相同的结果。
测试.php:
<?php
print_r(localeconv());
PHP7.4 在哪里获取语言环境配置,为什么与 PHP7.2 不同?我必须检查什么?