1

以下のコードで、最初は「Int」を返し、2回目は「Notint」を返します。残念ながら、代わりに「Notint」を2回返します。

どうすればこれを修正できますか?

<?php
$test1='1';
if(is_int($test1)){
        echo "Int";
}else{
        echo "Not int";
}

echo "\n";

$test2='1a';
if(is_int($test2)){
        echo "Int";
}else{
        echo "Not int";
}
?>
4

4 に答える 4

6

数値を引用符で囲むことにより'1'、文字列を宣言します。代わりに、を使用する必要があります$test1 = 1;

PHPctype_digit()関数を使用すると、文字列に数字のみが含まれているかどうかを確認できます。
この関数を使用することもできます。このis_numeric()関数は、文字列に+0123.45e6またはのような指数部分または16進値が含まれている場合にもtrueを返します0xFF

于 2012-10-04T16:48:15.570 に答える
2

is_int-変数の型が整数かどうかを調べます。数値を引用符で囲むため、文字列になります。したがって、is_int = false

is_numeric —変数が数値であるか数値文字列であるかを検索します文字列は実際には数値であるため、is_numericはtrueを返します

したがって、is_intをis_numericに変更すると、次のように機能します。

<?php
$test1 = '1';
if (is_numeric($test1))
{
    echo 'Int';
}
else
{
    echo 'Not int';
}

echo "\n";

$test2 = '1a';
if (is_numeric($test2))
{
    echo 'Int';
}
else
{
    echo 'Not int';
}
?>
于 2012-10-04T16:49:48.637 に答える
1

ctype_digit()代わりに使用してください。

ctype_digit('1'); // True
ctype_digit('1a'); // False
于 2012-10-04T16:48:26.097 に答える
0

変化する

 $test1='1'; 

 $test1=1;
于 2012-10-04T16:49:43.653 に答える