值得注意的是,此函数的预期行为可能会根据您的 ICU 版本而改变。
在 ICU 4.4.2(Ubuntu 10.* 和 PHP 5.3.5 的标准)中
使用语言环境“en”,输入 100,1 返回 1001
在 ICU 4.8.1(Ubuntu 12.* 和 PHP 5.3.10 的标准)中
使用语言环境“en”,输入 100,1 返回“false”
请务必注意 phpinfo() 中的 ICU 版本,以确保您获得预期的输出。
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::parse -- numfmt_parse — 解析数字
面向对象风格
$string
, int $type
= NumberFormatter::TYPE_DOUBLE, int &$offset
= null
): int|float|false过程化风格
$formatter
,$string
,$type
= NumberFormatter::TYPE_DOUBLE,&$offset
= null
使用当前格式化程序规则将字符串解析为数字。
formatter
NumberFormatter 对象。
string
要解析数字的字符串。
type
要使用的格式类型。默认情况下,使用NumberFormatter::TYPE_DOUBLE
。请注意,NumberFormatter::TYPE_CURRENCY
不受支持;请改用NumberFormatter::parseCurrency()。
offset
开始解析的字符串中的偏移量。返回时,此值将保存解析结束时的偏移量。
解析数字的值或在出错时返回false
。
示例 #1 numfmt_parse() 示例
<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>
示例 #2 OO 示例
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>
以上示例将输出
1234567.891 1234567
值得注意的是,此函数的预期行为可能会根据您的 ICU 版本而改变。
在 ICU 4.4.2(Ubuntu 10.* 和 PHP 5.3.5 的标准)中
使用语言环境“en”,输入 100,1 返回 1001
在 ICU 4.8.1(Ubuntu 12.* 和 PHP 5.3.10 的标准)中
使用语言环境“en”,输入 100,1 返回“false”
请务必注意 phpinfo() 中的 ICU 版本,以确保您获得预期的输出。
'en_EN'
基本上,第一部分是语言,第二部分是区域
'en_EN' - 英语,英格兰
'en_US' - 英语,美国
您可以在此处查找像“en_EN”这样的语言标签
https://datahub.io/core/language-codes
参见“ietf-language-tags”