Получение правильной формы слова для разного количества в PHP

Получаем правильную форму числа для количества элементов:

<?php

const WORDS = [
    'комментарий',
    'комментария',
    'комментариев'
];

function numDeclension($value, array $words, bool $show = true): string
{
    $num = $value % 100;
    if ($num > 19) $num = $num % 10;
    $out = ($show) ?  $value . ' ' : '';
    switch ($num):
        case 1:  $out .= $words[0]; break;
        case 2:
        case 3:
        case 4:  $out .= $words[1]; break;
        default: $out .= $words[2]; break;
    endswitch;

    return $out;
}

// 32 комментария
echo numDeclension(32, WORDS);

Предыдущая заметка

Простой шаблонизатор

Следующая заметка

Количество символов в строке
Закрыть