Хабр
Все потоки
Поиск
Написать публикацию
Настройки
Войти
Обновить
0
0
digi
@digi
Пользователь
Подписаться
Отправить сообщение
Профиль
Статьи
Посты
Новости
Комментарии
23
Ещё
Открыть список
Закладки
81
Подписчики
Подписки
Скопировать ссылку на RSS
Множественные числа
@digi
31 окт 2007 в 15:18
Правильный набор условий:
if ($number % 100 > 10 && $number % 100 < 20) return $base . $e0;
if ($number % 10 == 1) return $base . $e1;
if ($number % 10 >= 2 && $number % 10 <= 4) return $base . $e2;
return $base . $e0;
Множественные числа
@digi
31 окт 2007 в 15:09
Буквально сегодня ночью для этих целей написал небольшую функцию Smarty.
Использование:
{ending number=$reviews base="реценз" e0='ий' e1='ия' e2='ии'}
{ending number=$comments base="комментар" e0='иев' e1='ий' e2='ия'}
И сама функция (файл /smarty/libs/plugins/function.ending.php):
function smarty_function_ending($params, &$smarty)
{
// ...
// проверки входных параметров пропущены
// ...
$base = !isset($params['base']) ? '' : $params['base']:
$e0 = $params['e0'];
$e1 = $params['e1'];
$e2 = $params['e2'];
$number = $params['number'];
if ($number % 10 == 1) return $base . $e1;
if ($number % 10 >= 2 && $number % 10 <= 4) return $base . $e2;
return $base . $e0;
}
</code>
«Выгуглен»: Кори Доктороу о всепроникающем Гугле
@digi
24 окт 2007 в 14:43
Да, Big Google is watching you.
Назад
Сюда
1
2
Туда
Назад
Информация
В рейтинге
Не участвует
Откуда
Украина
Дата рождения
4 мая 1979
Зарегистрирован
28 сентября 2007
Активность
20 апреля 2015 в 07:31
if ($number % 100 > 10 && $number % 100 < 20) return $base . $e0;
if ($number % 10 == 1) return $base . $e1;
if ($number % 10 >= 2 && $number % 10 <= 4) return $base . $e2;
return $base . $e0;
Использование:
{ending number=$reviews base="реценз" e0='ий' e1='ия' e2='ии'}
{ending number=$comments base="комментар" e0='иев' e1='ий' e2='ия'}
И сама функция (файл /smarty/libs/plugins/function.ending.php):
function smarty_function_ending($params, &$smarty)
{
// ...
// проверки входных параметров пропущены
// ...
$base = !isset($params['base']) ? '' : $params['base']:
$e0 = $params['e0'];
$e1 = $params['e1'];
$e2 = $params['e2'];
$number = $params['number'];
if ($number % 10 == 1) return $base . $e1;
if ($number % 10 >= 2 && $number % 10 <= 4) return $base . $e2;
return $base . $e0;
}
</code>