Добавлю я тоже небольшой вклад от себя. Я очень часто вижу сайты с текстом в виде: "1 сообщения" или "47 сообщения". Разработчик и не думает о правильным окончанием существительного. Но ведь такой текст на сайте более похож на кусок **** . Покажу вам решение этой проблемы.
Вот пример кода:
Пример использования:
Вот пример кода:
function number_ending($number, $ending0, $ending1, $ending2) { $num100 = $number % 100; $num10 = $number % 10; if ($num100 >= 5 && $num100 <= 20) { return $ending0; } else if ($num10 == 0) { return $ending0; } else if ($num10 == 1) { return $ending1; } else if ($num10 >= 2 && $num10 <= 4) { return $ending2; } else if ($num10 >= 5 && $num10 <= 9) { return $ending0; } else { return $ending2; }
}
Пример использования:
$n = 10;
echo $n." ".number_ending($n, "Сообщений", "Сообщение", "Сообщения");
// Вернет "10 Сообщений"
$n = 21;
echo $n." ".number_ending($n, "Сообщений", "Сообщение", "Сообщения");
// Вернет "21 Сообщение"
$n = 32;
echo $n." ".number_ending($n, "Сообщений", "Сообщение", "Сообщения");
// Вернет "32 Сообщения"
Спасибо, еще не выражали.