Как преобразовать строку в целое и проверить ее? - PullRequest
4 голосов
/ 13 июня 2011

У меня проблема. Я удаляю текстовый файл и извлекаю ID. Проблема в том, что данные не согласованы, и я должен оценить данные.

Вот код:

$a = "34";
$b = " 45";
$c = "ddd556z";


if (  ) {

    echo "INTEGER";
} else{ 

    echo "STRING";
}

Мне нужно проверить, являются ли значения $ a, $ b или $ c целыми числами. Каков наилучший способ сделать это? Я проверил, чтобы "обрезать" и использовать "is_int", но не работает, как ожидалось.

Может кто-нибудь подсказать мне?

Ответы [ 3 ]

8 голосов
/ 13 июня 2011

Пример ниже будет работать, даже если ваше "int" - строка $a = "number";

is_numeric()

или

preg_match( '/^-?[0-9]+$/' , $var )  // negative number © Piskvor

или

intval($var) == $var

или (как и в прошлом)

(int) $var == $var
2 голосов
/ 13 июня 2011

http://www.php.net/manual/en/function.ctype-digit.php

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "The string $testcase consists of all digits.\n";
    } else {
        echo "The string $testcase does not consist of all digits.\n";
    }
}

// will output
//The string 1820.20 does not consist of all digits.
//The string 10002 consists of all digits.
//The string wsl!12 does not consist of all digits.
1 голос
/ 13 июня 2011
<?
$a = 34;
if (is_int($a)) {
    echo "is integer";
} else {
    echo "is not an integer";
}
?>
$a="34";

не будет проверяться как int;)

...