sfadless / number-to-string-converter
将数字转换为文本
2.0.2
2021-02-16 10:31 UTC
Requires
- php: ^5.6 || ^7.0 || ^8.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-16 18:43:22 UTC
README
将数字转换为字符串
文档
基本用法
use Sfadless\NumberToStringConverter\Language\Russian\RussianLanguageFactory; use Sfadless\NumberToStringConverter\NumberToStringConverter; $factory = new RussianLanguageFactory(); $russianLanguage = $factory->create(); $converter = new NumberToStringConverter($russianLanguage); $converter->convert(33.27); //тридцать три рубля двадцать семь копеек
输出模板
您可以使用模板来控制输出。默认模板是 "%i_string% %i_currency% %f_string% %f_currency%"。这意味着,对于数字 11.12,默认输出将是 "одиннадцать рублей двенадцать копеек"。默认情况下,模板中可用的变量有 %i_string%,%i_value%,%i_currency%,%f_string%,%f_value%,%f_currency%。
$template = '%i_value% %i_currency% %f_value% %f_currency%'; $converter->convert(12.22, ['template' => $template]); // 12 рублей 22 копейки
在模板中添加变量
如果您需要,您可以在模板中添加自己的变量,您将完全控制输出。
use Sfadless\NumberToStringConverter\Language\Russian\Output\Output; use Sfadless\NumberToStringConverter\Language\Russian\Output\OutputVariable; $variable = new OutputVariable('i_short_curency', function (Output $output) { return mb_substr($output->getInteger()->getCurrency(), 0, 3); }); $template = '%i_value% %i_short_curency%'; $converter->convert(12, ['template' => $template, 'variables' => [$variable]]); // 12 руб
更改货币
默认情况下,货币是卢布。您可以创建任何您喜欢的货币。
use Sfadless\NumberToStringConverter\Language\Russian\Currency; use Sfadless\NumberToStringConverter\Language\Russian\Declension\Declension; $currency = new Currency( new Declension('доллар', 'доллара', 'долларов', Declension::GENDER_M), new Declension('цент', 'цента', 'центов', Declension::GENDER_M) ); $converter->convert(3.05, ['currency' => $currency]); //три доллара пять центов