当前位置: 首页>>代码示例>>PHP>>正文


PHP Number::morph方法代码示例

本文整理汇总了PHP中Number::morph方法的典型用法代码示例。如果您正苦于以下问题:PHP Number::morph方法的具体用法?PHP Number::morph怎么用?PHP Number::morph使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Number的用法示例。


在下文中一共展示了Number::morph方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: num2str

 /**
  * Возвращает сумму прописью
  */
 public static function num2str($num)
 {
     $nul = 'ноль';
     $ten = array(array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'), array('', 'одна', 'две', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять'));
     $a20 = array('десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
     $tens = array(2 => 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
     $hundred = array('', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
     $unit = array(array('копейка', 'копейки', 'копеек', 1), array('рубль', 'рубля', 'рублей', 0), array('тысяча', 'тысячи', 'тысяч', 1), array('миллион', 'миллиона', 'миллионов', 0), array('миллиард', 'милиарда', 'миллиардов', 0));
     //
     list($rub, $kop) = explode('.', sprintf("%015.2f", floatval($num)));
     $out = array();
     if (intval($rub) > 0) {
         foreach (str_split($rub, 3) as $uk => $v) {
             // by 3 symbols
             if (!intval($v)) {
                 continue;
             }
             $uk = sizeof($unit) - $uk - 1;
             // unit key
             $gender = $unit[$uk][3];
             list($i1, $i2, $i3) = array_map('intval', str_split($v, 1));
             // mega-logic
             $out[] = $hundred[$i1];
             # 1xx-9xx
             if ($i2 > 1) {
                 $out[] = $tens[$i2] . ' ' . $ten[$gender][$i3];
             } else {
                 $out[] = $i2 > 0 ? $a20[$i3] : $ten[$gender][$i3];
             }
             # 10-19 | 1-9
             // units without rub & kop
             if ($uk > 1) {
                 $out[] = Number::morph($v, $unit[$uk][0], $unit[$uk][1], $unit[$uk][2]);
             }
         }
         //foreach
     } else {
         $out[] = $nul;
     }
     $out[] = Number::morph(intval($rub), $unit[1][0], $unit[1][1], $unit[1][2]);
     // rub
     $out[] = $kop . ' ' . Number::morph($kop, $unit[0][0], $unit[0][1], $unit[0][2]);
     // kop
     return trim(preg_replace('/ {2,}/', ' ', join(' ', $out)));
 }
开发者ID:sklyar,项目名称:mailer,代码行数:48,代码来源:Number.php


注:本文中的Number::morph方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。