Комментарии 26
Уважаемый, Вы изобретаете велосипед. ;)
0
Не сочтите за придирки, быстрее так имхо:
$n = abs($n) % 100;
if ($n >= 5 && $n
Так же было бы удобно иметь возможность хранить склонения одного слова в отдельном массиве и передавать его:
$let = Array('письмо', 'письма', 'писем');
plural(3, $let);
0
НЛО прилетело и опубликовало эту надпись здесь
Для разработчика, понимающего важность таких деталей (а именно в этом обычно проблема), вряд ли будет проблемой придумать соответствующий алгоритм.
0
мОлодежь, мОлодежь... :)
В-нулевых, действительнобаявелосипед.
Во-первых, нет варианта для значения ноль.
Более по-руску видеть «У вас в ящике писем нет», вместо «У вас в ящике 0 писем». А то ведь можно всю вашу замечательную процедуру выкинуть, уйдя от проблемы как-то так:
«Число писем в вашем ящике таково: %s».
А во-вторых, познайте же радость регулярных выражений (в пхп не силён, пример на перле):
Нам не нужно делить число на десять и сто, достаточно посмотреть, как оно выглядит.
(Кстати, мне тут наскучило писать руками "во-первых...во-вторых... в-третьих... в-одиннадцатых..." и т.д., надо бы алгоритмизировать :)
В-нулевых, действительно
Во-первых, нет варианта для значения ноль.
Более по-руску видеть «У вас в ящике писем нет», вместо «У вас в ящике 0 писем». А то ведь можно всю вашу замечательную процедуру выкинуть, уйдя от проблемы как-то так:
«Число писем в вашем ящике таково: %s».
А во-вторых, познайте же радость регулярных выражений (в пхп не силён, пример на перле):
; sub decline ($)
{ return "писем нет" unless $_ = shift
; return "$_ писем" if /[5-90]$/ or /1.$/
; /1$/ ? "$_ письмо" : "$_ письма"
}
##################################
; print decline 123
Нам не нужно делить число на десять и сто, достаточно посмотреть, как оно выглядит.
(Кстати, мне тут наскучило писать руками "во-первых...во-вторых... в-третьих... в-одиннадцатых..." и т.д., надо бы алгоритмизировать :)
0
любому пшпшику известно, что строковые функции намного быстрее рег. выражений
0
А мы куда-то спешим? )
0
ну да)
0
из-за таких "программистов" которым всё равно на время выполнения скрипта, появляется такое Г типа php-nuke... У которой рег. выр. везже где можно и 100 запросов на странице...
0
помоему вот наиболее красивое решение.
http://blog.redgraphic.ru/mephisto/09-02-07_334/
"Максим Барышников > C Вами говорит робот!":
function formatWord($num, $wordroot, $endings){
if((int)$num
и применение: echo 'У вас в ящике'.formatWord($i, "пис", array("ьмо", "ьма", "ем"));
пример неудачен :) но смысл я думаю понятен.
http://blog.redgraphic.ru/mephisto/09-02-07_334/
"Максим Барышников > C Вами говорит робот!":
function formatWord($num, $wordroot, $endings){
if((int)$num
и применение: echo 'У вас в ящике'.formatWord($i, "пис", array("ьмо", "ьма", "ем"));
пример неудачен :) но смысл я думаю понятен.
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Склонение существительных с числительными