Программное склонение существительных по числу на php
function RusSklonenie($n, $null, $one, $variant1, $variant2)
{
$nmod10 = $n % 10;
$nmod100 = $n % 100;
$str;
if (!$n)
{
$str = $null;
} elseif (($n == 1) || ($nmod10 == 1 && $nmod100 != 11))
{
$str = $one;
} elseif (($nmod10 > 1) && ($nmod10 < 5) && ($nmod100 != 12 && $nmod100 != 13 && $nmod100 != 14))
{
$str = $variant1;
} else
{
$str = $variant2;
}
return $str;
}
RusSklonenie($n, "нет строк", "$n строка", "$n строки", "$n строк");
Алгоритм склонения существительных по числу прост. Всего может быть четыре случая. Для примера, будем склонять по числу слово «комментарий»:
1 случай. Число равно нулю. Этот случай можно обработать по вкусу, например: «ни одного комментария», «нет комментариев» и т.п. Но ни в коем случае нельзя писать «0 комментариев», ибо такая форма не употребляется в обычной человеческой речи.
2 случай. Число равно единице, либо остаток от деления на 10 равен единице, но число не равно 11. В этом случае, наш пример примет следующий вид: «n комментарий», где n — число комментариев.
3 случай. Остаток от деления на 10 числа больше одного, но меньше пяти, а остаток от деления на 100 не равен 12, 13 и 14. К этим интервалам относятся числа 22, 23, 54, 2, 3, 173 и т.д. Исключения для этого случая составляют числа 12, 13, 14. Наш пример становится следующим: «n комментария».
4 случай Все остальные числа. Все оставшиеся числа будут отнесены к отдельной категории. Пример станет таким: «n комментариев».
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)