Какую функцию правильно использовать для проверки на число?

golos81

Новичок
Какую функцию правильно использовать для проверки на число?

Если мне надо проверить, является ли значение переменной числом, что использовать: is_numeric() или is_ int() и почему?

И чем они отличаются?
 

Koc9k

Новичок
is_int() проверяет , является ли значение переменной integer, то есть от -30к с копейками до 30к с копейками ( насколько я помню ) , а is_numeric() проверяется значение переменной на число , или числовую строку , и само числовое значение не имеет значение , главное что оно числовое ( туда же включено и float значение с 'e' )
 

golos81

Новичок
Автор оригинала: Koc9k
is_int() проверяет , является ли значение переменной integer, то есть от -30к с копейками до 30к с копейками ( насколько я помню ) , а is_numeric() проверяется значение переменной на число , или числовую строку , и само числовое значение не имеет значение , главное что оно числовое ( туда же включено и float значение с 'e' )
Спасибо!
 

DiMA

php.spb.ru
Команда форума
> то есть от -30к с копейками до 30к

да, реально смешно.. видимо у него пхп на win16 работает, типа IBM PC 386 ;-)
 

AmdY

Пью пиво
Команда форума
так, читаем мануал дальше, есть ещё одно важное "отличие"
 

korvin0

моська
Автор, запусти:
PHP:
if (is_numeric("16")) echo 'numeric<br>'; else echo 'not numeric<br>';
if (is_int("16")) echo 'int'; else echo 'but not int';
p/s/ ctype_* рулит :)
 

WP

^_^
PHP:
function isInteger($var)
{
 $var = strval($var);
 return ctype_digit(substr($var,0,1) == '-'?substr($var,1):$var);
}
Более подходящей на все случаи жизни не родил) Т.к. ctype_digit вернет FALSE для int'ов и float'ов, и строк представляющих собой запись отрицательного целого.
 

Koc9k

Новичок
Автор оригинала: DiMA
> то есть от -30к с копейками до 30к

да, реально смешно.. видимо у него пхп на win16 работает, типа IBM PC 386 ;-)
ой =))) Я почему-то выдал паскалевский integer ) Тупанул
 

phprus

Moderator
Команда форума
AmdY
Глупость сейчас сказал ты.
В борланд и турбо паскале тип integer 16-и битный. Это только в делфи он стал 32-х битным.
 

AmdY

Пью пиво
Команда форума
phprus, да причём здесь паскаль или дельфи, вопрос в n-битности, от которой и зависит размер.
как-то смешно слышать паскалевский integer, дельфийский integer ...
 
Сверху