0

我正在尝试在我的本地机器上将 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 不同?我必须检查什么?

4

0 回答 0