我今天遇到了最奇怪的事情,我不知道该怎么做。
这是我的代码:
<?php
$nf = new \NumberFormatter("en_UK", \NumberFormatter::ORDINAL);
die(var_dump($nf->format(1)));
此代码在PHP 5.6.20版中输出以下内容:
string(3)“1st”
但它在PHP 5.6.14版中输出以下内容:
string(6)“1ˢᵗ”
我不知道该怎么做。上标版本是我没想到的。我查看了更改日志但未记录此更改。任何人都知道这是否是预期的行为?任何方式强制它回到第一个行为(因为它在表单中呈现时看起来很奇怪)?
PHP 5.6.20安装使用ICU版本4.8.1.1而5.6.14使用ICU版本4.4.0.1
答案 0 :(得分:1)
我只是升级到更新的ICU。
奇怪的上标在CLDR 2.0修复了。它是在this ticket年前引入的。我不确定哪个CLDR版本引入了它,但不幸的是我的名字作为评论者。也许这在当时似乎是一个好主意。
这是来自CLDR的数据,而不是代码,通常我们不会为每次数据更改生成更改日志条目。