Выбираем окончания для существительных с количественным числительным

В русском языке существительные с количественным числительными могут быть в единственном, двойственном и множественном числе: один голос, два голоса, пять голосов (двойственное число — это почти исчезнувшая в русском языке грамматическая конструкция).

Я привык называть эти три формы следующим образом: «форма единицы», «форма двойки», «форма пятёрки».

Чтобы правильно просклонять существительное с количественным числительным, я наваял нечто подобное



< ?php
function endingsForm($n, $form1, $form2, $form5) {
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}

// пример
echo 'Статья оценена в  '.$n.' '.endingsForm($n, 'голос', 'голоса', 'голосов');
?>

Чтобы просклонять существительные на других языках, воспользуйтесь данным материалом

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

  • Более лаконичный вариант, переведенный из gettext на php:

    [php]
    <?php
    function plural_form($n, $forms) {
    return $n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&$n%100=20)?$forms[1]:$forms[2]);
    }
    ?>
    [/php]

    • Так это абсолютно тоже самое, только записанное в одну строку )

      • слово «лаконичный» не говорит о том, что вариант должен быть другим

        • Согласен, но я за понятный код! Ваш код сложнее для понимания, хотя и короче:)