😊
PHPで文字列型になっている数値かどうか判定するには is_numericを使おう
正解
is_numeric()
を使います。
$hoge = "1";
is_numeric($hoge);
> true
$fuga = "fuga";
is_numeric($fuga);
> false
$piyo = "0";
is_numeric($piyo);
> true
NG(最初に書いていたコード)
intval()
が変換失敗したときに0
を返す、という仕様を使って判定していました。が、"0"
が判定できていません。これではだめですね。
成功時は value の整数値、失敗時は 0。 空の配列の場合は 0、空でない配列の場合は 1 を返します。
$hoge = "1";
intval($hoge) !== 0;
> true
$fuga = "fuga";
intval($fuga) !== 0;
> false
$piyo = "0";
intval($piyo) !== 0;
> false
Discussion