1

GET 文字列が URL に設定され、その値が整数であることを確認しようとしていますが、これを機能させることができません。

if (isset($_GET['allusers']) && is_int($_GET['allusers'])) {

    echo "works";

}

括弧で何か間違っていますか?

4

4 に答える 4

5

$_GET変数を整数にすることはできません。常に文字列になります。

数値文字列かどうかをテストするには、次を使用しますis_numeric()

if ( isset($_GET['allusers']) && is_numeric($_GET['allusers']) )
{
    echo "works";
}
于 2012-06-08T17:37:47.777 に答える
0

あなたのコードで

isset($_GET['allusers'])

trueと評価されますが、is_int($ _ GET ['allusers'])は、$ _ GETの値が文字列であるため、コードを次のように変更できません。

if (isset($_GET['allusers']) && is_int(intval($_GET['allusers']))) {

    echo "works";

}

これはうまくいくでしょう

于 2012-06-08T17:43:20.047 に答える
0

ctype_digit非負の整数のみが必要な場合に使用します。数値のみを許可するため、このような場合に最適な結果が得られます0-9

は、負数と浮動小数点数の両方の整数に変換できる文字列に対してis_numeric返されることに注意してください。と見なされるtrueもののいくつかの例:is_numerictrue

  • 0xF5(16 進数)
  • -.0e-000(変な表現0.0)
  • -0.4
于 2012-06-08T17:48:53.717 に答える
-1

is_intは文字列を返しますfalse。これは、GET変数になります。

var_dump(is_int("23"));
bool(false)

is_numericinstadを使用する必要があります。

于 2012-06-08T17:40:46.803 に答える