The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Как проверить что переменная является числом.
if (ereg("^[0-9]+$", $var)) { число }
 
06.09.2001
/ Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / PHP / Конструкции языка и функции

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, kVn (?), 13:23, 11/07/2002 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if (is_numeric($var)) { число }

    is_numeric()
    Returns TRUE if var is a number or a numeric string, FALSE otherwise.
    PHP 4 >= 4.0.0

     
  • 1.2, ГрызЪ (?), 01:16, 16/01/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if($var+0==$var) это число
     
     
  • 2.4, oraweb (ok), 13:50, 07/03/2006 [^] [^^] [^^^] [ответить]  
  • +/
    $var="dfsgdsfgdf";
    if($var+0==$var) -> еррор лог апача быстро распухнет хренатенью от таких проверок.
    Чья бы корова мычала...
     

  • 1.3, k512 (?), 17:06, 25/05/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if(is_numeric($var)) это тоже число :)
     
  • 1.5, oraweb (ok), 14:37, 07/03/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    для Perl
    if ($var =~ /^\d+$/) {число целочисленное}
    if ($var =~ /^[+-]?\d+$/) {число целочисленное со знаками плюс или минус впереди}
     
  • 1.6, Денис Лозко (?), 14:24, 16/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ctype_digit

    (PHP 4 >= 4.0.4, PHP 5)
    ctype_digit -- Check for numeric character(s)

     
  • 1.7, liuch (?), 13:08, 14/05/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if (ereg("^[1-9]+[0-9]*$", $var)) { число }
     
  • 1.8, Sliper (?), 14:15, 13/10/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А можно вот так:
    is_int($имя_переменной) - проверяет, является ли переменная целым числом (тип integer);
    is_float($имя_переменной) - проверяет, является ли переменная числом с плавающей точкой;
    is_null($имя_переменной) - проверяет, равно ли значение переменной нулю;
    is_numeric($имя_переменной) - проверяет, является ли переменная числовой строкой;
     
  • 1.9, Alexander (??), 11:30, 25/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Такой вариант:
    $a = '123';
    if (is_int($a)) вернет false, тогда как это является числовой строкой.
    Отпадает.

    Далее:
    $b = '1e23';
    if (is_numeric($b)) вернет true, тогда как это не совсем число.
    Так же, отпадает.

    Регулярки использовать не хочется. Есть какие-то еще варианты?

     
     
  • 2.10, Kotolegokot (?), 09:18, 27/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    С каких щей '1e23' -- не число?
     

  • 1.11, AlexRussIp (?), 18:50, 07/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень просто, если вот так:
    if((int)$id == $id){true}
    Для не строгого сравнения работает, Если же брать оператор "===" - то тут проверяется и тип - то есть для $id = '1'; - не прокатит
     
  • 1.12, AlexRussIp (?), 19:01, 07/02/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хе, проверил - не сработало)), Но зато работает
    if(strval((int)$id)==$id){true} и так
    if(strval((int)$id)===$id){true}
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру