Склоняем существительные на PHP

Описание проблемы

В данной заметке хочу поделиться с читателями одним весьма полезным php-сниппетом, выполняющим склонения существительных согласно правилам русского языка:

  • 1457отзывов.
  • 561 отзыв.
  • 122 отзыва.

На большинстве же ныне существующих веб-ресурсах всё выглядит вот таким образом:

  • Меток: 10.
  • Меток: 23.
  • Меток: 1

Суть решения: код

<?php
function inducement($c, $one, $two, $five) {
    $c = abs($c);
    $c %= 100;
    if ( ($c >= 5) and ($c <= 20) ) :
        return $five;
	endif;	
    $c %= 10;
    if ($c == 1) :
        return $one;
	endif;
    if ( ($c >= 2) and ($c <= 4) ) :
        return $two;
	endif;	
    return $five;
}
?>

Входные данные здесь следующие:

  • $c - число, предшествующее существительному;
  • $one - форма слова, когда предмет 1;
  • $two - форма слова, когда предметов 2;
  • $five - форма слова, когда предметов 5.

Результат применения

Пример использования функции на WordPress, вывод количества комментариев внутри цикла показа постовых:

<?php
$example = get_comments_number(); // получаем число (см. WordPress API)
echo $example  . ' '. inducement($example, 'комментарий', 'комментария', 'комментариев');
?>

PHP склонение существительных

Скриншот говорит сам за себя.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.