Функция возврата окончания слова при склонении (PHP)

// склонение слов после числительных
// uni_declension($i, 'жена, жены, жён')
function uni_declension($num, $str)
{
   $exp = explode(',', $str);
   $num = (($num < 0) ? $num-$num*2 : $num)%100;
   $dig = ($num > 20) ? $num%10 : $num;
   return trim((($dig == 1) ? $exp[0] : (($dig > 4 || $dig < 1) ? $exp[2] : $exp[1])));
}

Вариант из ядра битрикс:
use Bitrix\Main\Grid\Declension;
$yearDeclension = new Declension('год', 'года', 'лет');
$yearDeclension->get($year);