Создание сайтов

Реклама в интернете

Графический дизайн

Фирменный стиль

 



Статьи → php → Множественные числа

Довольно часто на сайтах встречаются нелепые словесные конструкции, которыми программист обезличено хотел показать какой либо количественный параметр, например:

на сайте 22 человек ( а должно быть 22 человека )
1 комментариев ( понятно, что расчёт шёл на 10+ комментариев, но это не выход )

Но на самом деле это не проблема!
Для того, что бы всё делать красиво, достаточно совсем чуть-чуть кода

class datext{
  public static function proceedTextual( $numeric, $many, $one, $two ){
    $numeric = (int) abs($numeric);
    if ((numeric % 100 == 1 || ($numeric % 100 > 20) && ($numeric % 10 == 1)) return $one;
    if ($numeric % 100 == 2 || ($numeric % 100 > 20) && ($numeric % 10 == 2)) return $two;
    if ($numeric % 100 == 3 || ($numeric % 100 > 20) && ($numeric % 10 == 3)) return $two;
    if ($numeric % 100 == 4 || ($numeric % 100 > 20) && ($numeric % 10 == 4)) return $two;
    return $many;
  }
}


В класс функция внесена, что бы не дай бог не пересечья названием с уже используемой.
Статической сделана для того, что бы не требовалось создавать экземпляр класса.

Ну а теперь примеры:
echo "21 ".datext::proceedTextual( 21, 'комментариев', 'комментарий', 'комментария' );

на выходе получаем "21 комментарий"
echo "онлайн 152 ".datext::proceedTextual( 152, 'человек', 'человек', 'человека' );

на выходе получаем "онлайн 152 человека"

Статья любезно предоставлена habrahabr.ru © animal

  php     26 Декабря, Воскресенье 
 
Ajax CSS JavaScript Google php 1C MSSQL Маркетинг MySQL Web-разработка SEO Virus Заработок Логотипы Фирменный стиль Безопасность SMO Хостинг Аутсорсинг Сотовая связь Домены

 
 
 
© 2006-2016 Веб-студия «Софт-Арт»
Создание сайтов в Ростове
(863) 2-098-456
support@soft-art.ru