Склонение слов

Это короткая статейка о том, как написать функцию склоняющее число.
Например, 1 день, 2 дня или 5 дней. В приведенном мной примере, склоняется число дней. В php я не нашел стандартных функций выполняющих склонение слова, поэтому я решил изобрести свою. По сути, функция очень простая: функция будет получать число и три формы слова, проанализировав число, функция выберет нужную форму.

Вот так выглядит сама функция:

function numForm($number, $forma1, $forma2, $forma3){	
	if(($number == "0") or (($number >= "5") and ($number <= "20")) or preg_match("|[056789]$|",$number)){
		return "$number $forma3";
	}	
	
	if(preg_match("|[1]$|",$number)){
		return "$number $forma1";
	}
		
	if(preg_match("|[234]$|",$number)){
		return "$number $forma2";
	}
}

А вот пример использования функции:

// сколько мне дней
$birthday = mktime(0, 0, 0, 1, 24, 1989); // 24 января 1989 года
echo "Мой возраст: " . numForm(round((time()-$birthday)/ 86400), "день", "дня", "дней");
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*