Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что я сделал в этом коде неверно? рандомные числа с приставкой должны отображаться верно, а выдаёт чушь...

dr. gipnog Знаток (257), закрыт 6 лет назад
<?php
$ageNumber = rand(18, 110);
if($ageNumber > 10 and $ageNumber < 15) {
$term = "лет";
} else {
$ageNumber = rand($18, 110);
if($ageNumber == 0) {$term = "лет";}
if($ageNumber == 1 ) {$term = "год";}
if($ageNumber > 1 ) {$term = "года";}
if($ageNumber > 4 ) {$term = "лет";}
}
?>

<?php echo $ageNumber;?><?php echo $term;?>
Лучший ответ
Андрей Высший разум (482449) 6 лет назад
Во первых, приставка - это то, что ДО, а не ПОСЛЕ.

Во вторых, при rand(18, 110) выражение $ageNumber > 10 and $ageNumber < 15 ВСЕГДА равно false.

$tmp = $ageNumber % 100;
$term = ['лет', 'год', 'года', 'года', 'года', 'лет', 'лет', 'лет', 'лет', 'лет']
[ ($tmp % 10) * (int)($tmp < 10 || $tmp >= 20)];
Остальные ответы
Putnik Оракул (89685) 6 лет назад
Проверяй не само число а последнюю него цифру.
31 год
34 года
И зачем рандом 2 раза?
dr. gipnogЗнаток (257) 6 лет назад
Как это сделать? Только начинаю разбираться..
забань плиз Мыслитель (6203) 6 лет назад
для склонений можно использовать это - https://htmler.ru/2011/08/12/skloneniye-chislitelnyh-na-php/
а у вас в else число опять рандомом зачем-то берётся.
Похожие вопросы