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

Порой на сайтах встречаются такие фразы: на сайте 2 гостей, 2 гостей(я) и прочие извращения. Мы же живем в цивилизованной стране, так давайте склонять окончания слов на PHP правильным образом, а не как придется. Для начала напишем функцию, которая будет определять, в какое склонение ставить слово.

function plural_type($n){
    return ($n%10==1 && $n%100!=11 ? 0 : ($n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2));
}

По факту мы просто получаем число 0,1,2, что означает первый, второй или третий элемент массива. А теперь создадим массив данных

$_plural_years = array('год', 'года', 'лет');
$_plural_months = array('месяц', 'месяца', 'месяцев');
$_plural_days = array('день', 'дня', 'дней');
$_plural_times = array('раз', 'раза', 'раз');
$_plural_products = array('товар', 'товара', 'товаров');
$_plural_guest = array('гость', 'гостя', 'гостей');

А теперь осталось дело за малым, передаем в функцию plural_type(5) значение, например, 5 и получаем результат:

echo '1 '.$_plural_guest[plural_type(1)].' посмотрел 2 '.$_plural_products[plural_type(2)].' 5 '.$_plural_days[plural_type(5)].' назад';
// 1 гость посмотрел 2 товара 5 дней назад

Вот такое простое решение слонения слов на PHP.

Скачать урок

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

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

Scroll Up