[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как проверить переменную на число?
abdula81
Парни, подскажите, чем можно заменить (если можно) такую запись?

if(!empty($id) && is_int($id) && $id > 0 && $id <= 1000){
return true;
}


Нужно вернуть true, если переменная не пустая, цифра и в диапазоне от 1 до 1000
Kusss
Да нормально у тебя , только empty убери. Так как in_int и так даст false на пустое значение.
если у тебя будет число в строке, можно заменить на is_numeric
is_int('345'); // false
is_numeric('345'); // true

Ещё как вариант , можно привести значение к типу число, и проверить 1-1000
$id = (int)$id;
return ($id > 0 && $id <= 1000) ? true : false;
abdula81
Kusss
Благодарю.

Цитата
$id = (int)$id;

я обычно привожу так:
$id = intval($id);


аналогично в общем :)
Kusss
тоже самое , int это короткая запись.
Kusss
правда тут есть одна засада.
echo (int)'123аывавы ыва аыв аыв'; // 123
abdula81
Засада? Не вижу)
$a = (int)'123аывавы ыва аыв аыв';
$b = intval('123аывавы ыва аыв аыв');
var_dump($a); //123
var_dump($b); //123
Kusss
я не об этом :)
'123аывавы ыва аыв аыв' !== 123
twin
Цитата (Kusss @ 24.01.2019 - 11:16)
return ($id > 0 && $id <= 1000) ? true : false;
Тут тернарник лишний. Достаточно так:
return $id > 0 && $id <= 1000;
скобки можно оставить для наглядности.

А вообще семантически верно было бы заюзать filter_var() с флагом FILTER_VALIDATE_INT. Там в опциях можно и диапазон обозначить.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
FatCat
Цитата (Kusss @ 24.01.2019 - 14:16)
Ещё как вариант , можно привести значение к типу число, и проверить 1-1000
$id = (int)$id;
return ($id > 0 && $id <= 1000) ? true : false;

$id = "10K";
$id = (int)$id;
return ($id > 0 && $id <= 1000) ? true : false; // true


_____________
Бесплатному сыру в дырки не заглядывают...
Kusss
FatCat
Цитата
правда тут есть одна засада.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.