PHP Conference Japan 2024

localeconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

localeconv取得數值格式化資訊

說明

localeconv(): 陣列

返回包含本地化數值和貨幣格式化資訊的關聯式陣列。

參數

此函式沒有參數。

傳回值

localeconv() 會根據 setlocale() 設定的目前語系環境,返回相關數據。返回的關聯式陣列包含以下欄位:

陣列元素 說明
decimal_point 小數點字元
thousands_sep 千位分隔符號
grouping 包含數字分組方式的陣列
int_curr_symbol 國際貨幣符號(例如 USD)
currency_symbol 本地貨幣符號(例如 $)
mon_decimal_point 貨幣值的小數點字元
mon_thousands_sep 貨幣值的千位分隔符號
mon_grouping 包含貨幣值分組方式的陣列
positive_sign 正值的符號
negative_sign 負值的符號
int_frac_digits 國際貨幣值的小數位數
frac_digits 本地貨幣值的小數位數
p_cs_precedes 如果 currency_symbol 位於正值之前,則為 true,如果位於正值之後,則為 false
p_sep_by_space 如果 currency_symbol 與正值之間以空格分隔,則為 true,否則為 false
n_cs_precedes 如果 currency_symbol 位於負值之前,則為 true,如果位於負值之後,則為 false
n_sep_by_space 如果 currency_symbol 與負值之間以空格分隔,則為 true,否則為 false
p_sign_posn
  • 0 - 括號括住數值和 currency_symbol
  • 1 - 符號字串位於數值和 currency_symbol 之前
  • 2 - 符號字串位於數值和 currency_symbol 之後
  • 3 - 符號字串緊鄰 currency_symbol 之前
  • 4 - 符號字串緊鄰 currency_symbol 之後
n_sign_posn
  • 0 - 括號括住數值和 currency_symbol
  • 1 - 符號字串位於數值和 currency_symbol 之前
  • 2 - 符號字串位於數值和 currency_symbol 之後
  • 3 - 符號字串緊鄰 currency_symbol 之前
  • 4 - 符號字串緊鄰 currency_symbol 之後

p_sign_posnn_sign_posn 包含格式化選項的字串。每個數字代表上述其中一種情況。

grouping 欄位包含定義數字分組方式的陣列。例如,nl_NL 語系環境(在 UTF-8 模式下使用歐元符號)的貨幣分組欄位會包含一個具有值 3 和 3 的 2 項陣列。陣列索引越高,分組位置越靠左。如果陣列元素等於 CHAR_MAX,則不再進行分組。如果陣列元素等於 0,則應使用前一個元素。

範例

範例 #1 localeconv() 範例

<?php
if (false !== setlocale(LC_ALL, 'nl_NL.UTF-8@euro')) {
$locale_info = localeconv();
print_r($locale_info);
}
?>

上述範例將輸出:

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] => 2
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

另請參閱

新增註釋

使用者貢獻的註釋 1 則註釋

verdy_p at wanadoo dot fr
23 年前
C99 標準稍微修改了國際貨幣符號的定義,現在的長度為 4 個字元,而不是先前定義的 3 個字元。第四個字元通常會是一個 ASCII 空格,但它的實際值是根據地區設定而定的數字分組間隔字元(即 [sep_by_space] 和 [grouping] 所參考的字元)…
To Top