正解
is_numeric()
を使います。
<?php $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 を返します。
<?php $hoge = "1"; intval($hoge) !== 0; > true $fuga = "fuga"; intval($fuga) !== 0; > false $piyo = "0"; intval($piyo) !== 0; > false