Проверка, содержит ли строка целое число - PullRequest
35 голосов
/ 31 июля 2010

Вам известна функция, которая может проверять, содержит ли строка целое число?

Вот как я ожидаю, что это сработает:

holds_int("23") // should return true.  
holds_int("2.3") // should return false.  
holds_int("qwe") // should return false.

Ответы [ 14 ]

1 голос
/ 31 июля 2010

сравнение.php:

<?php
function is_numeric_int($s)
{
  return (strval(intval($s)) === $s);
}

function print_ini($s)
{
  echo "$s: " . ( is_numeric_int($s) ? 'true' : 'false' ) . "\n";
}

print_ini('qwe');
print_ini('23');
print_ini('-23');
print_ini('23.0');
print_ini('-23.0');
?>

Тестовый прогон:

$ php comparison.php 
qwe: false
23: true
-23: true
23.0: false
-23.0: false
1 голос
/ 31 июля 2010

Может быть два случая-

  1. Вам необходимо проверить точный формат строки числа (большинство ответов об этом)

  2. Вы хотите проверить, содержит ли строка определенное число или нет

    preg_match('/'.$matching_number.'/',$container_string);

0 голосов
/ 16 марта 2017

Если вы используете библиотеку Assert в своем проекте (https://github.com/beberlei/assert), вы можете легко сделать это в одной строке:

Assertion::integerish($var);

Примечание: в случае нарушения выдается исключениеутверждение.

0 голосов
/ 31 июля 2010

is_int - единственное, что предназначено для этой работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...