Склонение во множественное число

1-ый способ: своя функция (рекомендуемый)

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

function plural($n, $form1, $form2, $form5) {
    $n  = abs($n) % 100;
    $n1 = $n % 10;
    if ($n > 10 && $n < 20)      return $form5;
    else if ($n1 > 1 && $n1 < 5) return $form2;
    else if ($n1 == 1)           return $form1;
 
    return $form5;
}
 
$n = 3;
echo $n.' '.plural($n, 'комментарий', 'комментария', 'комментариев');
// $n == 3: 3 комментария
// $n == 101: 101 комментарий
// $n == 14: 14 комментариев

2-ой способ: ngettext()

В PHP есть функция ngettext() для образования слов во вножественном числе, но она некорректно работает с русскими словами.

ngettext('комментарий', 'комментариев', $n);
// $n == 3: 3 комментариев
// $n == 101: 101 комментариев
// $n == 14: 14 комментариев