|
|
|
|
|
для: JIEXA
(24.01.2005 в 23:16)
| | Всегда рады помочь... | |
|
|
|
|
|
|
|
для: JIEXA
(24.01.2005 в 22:24)
| | Вообщем послоностью получилась такая функия:
<?php
function preobrazovatel($num, $one, $ed, $mn)
{
$last = substr($num, strlen($num)-1);
if(($num>="10") and ($num<="20") )
{
print"$num $mn";
}
else if(
($last=="0") or
($last == "5") or
($last == "6") or
($last == "7") or
($last == "8") or
($last == "9"))
{
print"$num $mn";
}
else if($last=="1")
{
print"$num $one";
}
else if(
($last == "2") or
($last == "3") or
($last == "4"))
{
print"$num $ed";
}
}
?>
|
Проверить её можно так:
<?php
while($t < "10000")
{
print preobrazovatel($t, Статья, Статьи, Статей);
print"<br>";
$t++;
}
?>
|
Спасибо всем участникам форума! | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(24.01.2005 в 23:07)
| | а по-моему использование в такой мелочи класса только усложняет и запутывает =Р И все равно мой код меньше =Р | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(24.01.2005 в 23:07)
| | Дизайнер, спасибо, вы не поможите вот по этому вопросу(http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1714&page=1) очень надо! | |
|
|
|
|
|
|
|
для: Akira
(24.01.2005 в 22:53)
| | >Да? А если чило 12 ?
Там есть проверка на 12.
>И почему-то мой код по меньше Вашего класса
Какого такого класса? :) Здесь нет ни моего класса, ни моей функции. | |
|
|
|
|
|
|
|
для: Akira
(24.01.2005 в 22:53)
| | Да есть смысл
только так:
<?php
function preobrazovatel($num, $one, $ed, $mn)
{
...
}
?>
|
И потом вызываешь
<?php
preobrazovatel($num, Статья, Статьи, Статей);
preobrazovatel($num, Фаил, Файла, Файлов);
preobrazovatel($num, раз, раза, раз);
?>
|
Вот и гибкости прибавилось ))) | |
|
|
|
|
|
|
|
для: JIEXA
(24.01.2005 в 22:41)
| | Можно сделать примерно следующим образом:
<?php
function preobrazovatel($num, $one, $ed, $mn)
{
# $one="статья";
# $ed="статьи";
# $mn="статей";
if($num===""){
print"";
}
if(($num=="0") or
(($num >= "5") and ($num <= "20")) or preg_match("|[056789]$|",$num))
{
print"$num $mn";
return;
}
if(preg_match("|[1]$|",$num))
{
print"$num $one";
return;
}
if(preg_match("|[234]$|",$num))
{
print"$num $ed";
return;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(24.01.2005 в 22:48)
| | >Нужно проверять последний символ в числе.
Да? А если чило 12 ? Еще надо проверять что бы первое число не равно 1 =)
Что я благополучно и сделал....
И почему-то мой код по меньше Вашего класса =Р
Я его обычно использую для своих нужд. Типа счетчиков и т.д.
OFFTOP.
А есть ли смысл на такой код создовать function ? | |
|
|
|
|
|
|
|
для: JIEXA
(24.01.2005 в 22:41)
| |
<?
########################Вывод слова человек(а)#########################
$str = "3476473";
$last = substr($str,(strlen($str)-1),strlen($str));
$first = substr($str,0,1);
if ($first != 1)
{
if ($last == 3 OR $last == 2 OR $last == 4)
{
$people=" Человека"; // Присвоим Человека ,можно поменять на что угодно! Склоняем на 2,3,4
}
}
if (empty($people)) $people=" Человек"; // Присвоим Человек ,можно поменять на что угодно! Склоняем на 0,1,5,6,7,8,9
#######################################################
?>
|
И при любых значениях будет выводитья 5 человек ,но 2 человека.
переделать легко.
2 статьи но 5 статей.
Работает хоть с 19847576768855...5
Апплодисментов не надо =Р
PS $str-число Лучше к нему прировнять Ваше, $people -содержит слово. | |
|
|
|
|
|
|
|
для: SS
(24.01.2005 в 22:45)
| | Подожди те как несколько минут сейчас попробую кое-что | |
|
|
|
|