PHPでis_numericを使用する際に注意点
開発環境は、Windows10 Pro(64bit) + PHP 7.2.12。
is_numericだと、文字列化された数値はtrue扱い。
逆に、文字列などをintval、(int)した場合、0が返り、is_numericではtrue扱いになる。
だから、数値の文字列は変換しないでそのまま渡した方が良い。
以下のコードを書いておきます。
■数値の文字列化のケース
※結果は"数値です"と表示される
<?php $a = "123"; if(is_numeric($a)){ echo "数値です"; }else{ echo "数値ではありません"; } ?>
■文字列の数値化のケース
※結果は"数値です"と表示される
<?php $a = (int)"abc"; // $aには0が入る if(is_numeric($a)){ echo "数値です"; }else{ echo "数値ではありません"; } ?>