PHP: склонение числительных

/*
 * $num число, от которого будет зависеть форма слова
 * $form_1 первая форма слова, например Яблоко
 * $form_2 вторая форма слова - Яблока
 * $form_3 третья форма множественного числа слова - Яблоков
 */
function true_wordform($num, $form_1, $form_2, $form_3){
	$num = abs($num) % 100; // берем число по модулю и сбрасываем сотни (делим на 100, а остаток присваиваем переменной $num)
	$num_x = $num % 10; // сбрасываем десятки и записываем в новую переменную
	if ($num > 10 && $num < 20) // если число принадлежит отрезку [11;19]
		return $form_3;
	if ($num_x > 1 && $num_x < 5) // иначе если число оканчивается на 2,3,4
		return $form_3;
	if ($num_x == 1) // иначе если оканчивается на 1
		return $form_1;
	return $form_3;
}

Вывод:

$count = 5; 
echo $count . ' ' . wordForm($count, 'яблоко', 'яблока', 'яблок');
Поделиться
Отправить
 45   2019   php
Популярное