C99 標準稍微修改了國際貨幣符號的定義,現在的長度為 4 個字元,而不是先前定義的 3 個字元。第四個字元通常會是一個 ASCII 空格,但它的實際值是根據地區設定而定的數字分組間隔字元(即 [sep_by_space] 和 [grouping] 所參考的字元)…(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
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 |
|
| n_sign_posn |
|
p_sign_posn 和 n_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
)
)
C99 標準稍微修改了國際貨幣符號的定義,現在的長度為 4 個字元,而不是先前定義的 3 個字元。第四個字元通常會是一個 ASCII 空格,但它的實際值是根據地區設定而定的數字分組間隔字元(即 [sep_by_space] 和 [grouping] 所參考的字元)…