Склонение слова по числам на PHP
Если честно, не знаю как точно называется этот процесс, когда у слова меняется окончание в зависимости от того какое количество ему было присвоено, так что назвал это просто склонением )
Например, возьмем слово “диск“. Если он один, то так и пишем: “один диск“. Если их два, то надо писать уже “два диска” (окончание меняется). Если их пять, то пишем: “пять дисков“. Всего имеется 3 разных окончания: на 1, на 2, 3, 4 и на от 5 до 9 + 0. Этими подсчетами и занимается приведенная ниже функция. Мы указываем число и три варианта слова, а она возвращает это число с нужным словом.
Найти применение может где угодно, диапазон использования очень широк, например, указывать сколько юзеров на сайте (2 юзера или 8 юзеров) или писать сколько файлов загружено, чисто для улучшения визуального восприятия.
1 2 3 4 5 6 7 8 9 |
function sklonen($n,$s1,$s2,$s3, $b = false){ $m = $n % 10; $j = $n % 100; if($b) $n = '<b>'.$n.'</b>'; if($m==0 || $m>=5 || ($j>=10 && $j<=20)) return $n.' '.$s3; if($m>=2 && $m<=4) return $n.' '.$s2; return $n.' '.$s1; } echo sklonen(652, 'диск', 'диска', 'дисков'); |
В итоге функция вернет значение “652 диска”. У функции есть еще пятый параметр установленный по-умолчанию в false, он показывает, заключать ли число в тэг B чтобы выделить его жирным, это так, для удобства.
ноября 17, 2012 Суббота at 2:07 пп
-
webkitchen.pro
-
мяу
-
Быдлокодер
-
http://redspirit.ru Red Spirit
-
deep
-
Денис
-
Илья
-
TheRyuzaki
-
Роман Святун
