k01ken’s b10g

He110 W0r1d!

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 "数値ではありません";
}
?>