如何将String转换为Integer并进行测试?

时间:2011-06-13 11:02:27

标签: php string integer type-conversion

我有一个问题。我正在废弃一个txt文件并提取一个ID。问题是数据不一致,我必须评估数据。

以下是一些代码:

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


if (  ) {

    echo "INTEGER";
} else{ 

    echo "STRING";
}

如果值$ a,$ b或$ c是整数,我需要测试。这样做的最佳方式是什么?我已经测试过“修剪”并使用“is_int”但是没有按预期工作。

有人可以给我一些线索吗?

3 个答案:

答案 0 :(得分:8)

即使您的“int”是字符串$a = "number";

,下面的示例仍然有效
is_numeric()

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

intval($var) == $var

或(与上次相同)

(int) $var == $var

答案 1 :(得分:2)

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.

答案 2 :(得分:1)

<?
$a = 34;
if (is_int($a)) {
    echo "is integer";
} else {
    echo "is not an integer";
}
?>
$a="34";

不会验证为int;)