如何根据语言/语言环境为 1、2、3 制作 PHP 输出 "1st"、"2nd"、"3rd" 等?



最近,我不得不删除大量我精心编码的代码,但这些代码已经存在于PHP中。例如,我有一个拼写数字的函数,例如"56"=>"五十六"。PHP 内置了这个功能,支持任何语言环境/语言。它比我的内置函数好得多。例:

$a = new NumberFormatter('en_US', NumberFormatter::SPELLOUT);
var_dump($a->format('3'));

输出:

three

现在我可能再次面临这个问题。我不想将 1 => "1st"、2 = "2nd"、3 = "3rd"、"4 = "4th"等硬编码为英语,然后才发现 PHP 可以自动为任何语言执行此操作!是这样吗?

为了非常清楚,我想在函数中输入"2",如果区域设置en_US,则让它吐出"2nd",如果其他语言/区域设置,则根据需要吐出任何其他内容。

看看这个答案。

$locale = 'en_US';
$nf = new NumberFormatter($locale, NumberFormatter::ORDINAL);
echo $nf->format($number);

最新更新