Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проверить, чтобы входной параметр был в диапазоне от 1 до 250

Сообщения:  [1-10] 

 
 автор: Unkind   (13.03.2007 в 12:13)   письмо автору
 
   для: tokmak   (13.03.2007 в 11:31)
 

tokmak
Ваш код тоже неверен. Всегда будет "Неправильное значение".

   
 
 автор: tokmak   (13.03.2007 в 11:31)   письмо автору
 
   для: Unkind   (13.03.2007 в 08:43)
 

if(!is_numeric($val) || 1 > intval($val) > 250) $error = 'Не правильное значение';
Это не правильно. попробуй так

if(!is_numeric($val) > 1 &&  intval($val) < 250) { 
echo"Ok"; }
else {
$error = 'Не правильное значение';
echo $error;
}

   
 
 автор: Unkind   (13.03.2007 в 08:43)   письмо автору
 
   для: Binura   (13.03.2007 в 00:51)
 

Binura
Нельзя так делать.

   
 
 автор: Binura   (13.03.2007 в 00:51)   письмо автору
 
   для: tAleks   (08.03.2007 в 21:46)
 

if (1 < $val < 250) {print "да, число больше 1 и меньше 250"; } else {print"нет, число не входит в диапозон возможных чисел";}

   
 
 автор: tAleks   (08.03.2007 в 23:42)   письмо автору
 
   для: Киналь   (08.03.2007 в 22:47)
 

>Только, думаю, знаки < и > стоит поменять местами=)

Зачем знаки менять?

Если число меньше единицы - ошибка. Это правильно

1 > intval($val)


ИЛИ

Если число больше 250 - ошиба. Это тоже правильно.

intval($val) > 250


Так-то я записал - работает.
Но я хотел узнать можно ли это записать как-нибудь по короче.

   
 
 автор: tAleks   (08.03.2007 в 23:38)   письмо автору
 
   для: Trianon   (08.03.2007 в 22:46)
 

>Конечно.

Нифига, выдает ошибку:

parse error, unexpected '>' 

   
 
 автор: Киналь   (08.03.2007 в 22:47)   письмо автору
 
   для: tAleks   (08.03.2007 в 21:46)
 

Э-э... А может, просто разбить на два неравенства?

if(!is_numeric($val) || 1 > intval($val) || intval($val) > 250) $error = 'Не правильное значение';

Только, думаю, знаки < и > стоит поменять местами=)

   
 
 автор: Trianon   (08.03.2007 в 22:46)   письмо автору
 
   для: tAleks   (08.03.2007 в 21:46)
 

>Вообще синтаксис PHP допускает такого типа сравнение?
>

1 > intval($val) > 250


Конечно.
Только семантика (смысл) совсем не та, что Вы предположили.
Вычисляется 1 > intval($val) - ложь/истина и преобразуется к целому 0/1
Затем этот 0/1 сравнивается с 250. Результат естественно оказывается ложным.

>Может как-то по другому это надо записать?
>Хочется одной записью проверить нахождение числа в заданном диапазоне.

То, что Вы хотите, записывается как

1 > intval($val) && intval($val) > 250

   
 
 автор: ШИМ   (08.03.2007 в 22:34)   письмо автору
 
   для: tAleks   (08.03.2007 в 21:46)
 

непойму как число может быть меньше 1, но в то же время больше 250!
может 1<$val>250 будет правильней

   
 
 автор: tAleks   (08.03.2007 в 21:46)   письмо автору
 
 

Нужно проверить входной параметр, чтобы он был в диамазоне от 1 до 250.
Делаю так:

if(!is_numeric($val) || 1 > intval($val) > 250) $error = 'Не правильное значение';


Не работает.

Вообще синтаксис PHP допускает такого типа сравнение?

1 > intval($val) > 250


Может как-то по другому это надо записать?
Хочется одной записью проверить нахождение числа в заданном диапазоне.

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования