見積もりフォームなどで、ユーザーから受け取った値を計算するときなど、その入力データが数値かどうかをチェックする場合があります。 そのようなとき、よく使われるのがis_numeric()関数。 この関数では、データが数値または数値文字列であれば、TRUEを返します。 また、同様の働きをするctype_digit()関数もある。 こちらは入力値が数値か調べるときにつかうこともありますが、入力値に含まれるすべての文字が数値かどうかをチェックします。 「12.45」のように小数点が含まれる数値では、ctype_digit()関数はFALSEが返します。 例を見てみますと、
<?php //データを受け取る $ndata1 = @$_POST["ndata1"]; //データの型を表示する echo "<p>$ndata1 のデータ型:".gettype($ndata1); //数値かどうかをチェックする if(is_numeric($ndata1)){ $ndata2 = $ndata1 * $ndata1; echo "<p>$ndata1 * $ndata1 = ". $ndata2; } else { echo "<p>数値を入力してください:".$ndata1; } //数値かどうかをチェックする if(ctype_digit($ndata1)){ $ndata2 = $ndata1 * $ndata1; echo "<p>$ndata1 * $ndata1 = ". $ndata2; } else { echo "<p>数値を入力してください:".$ndata1; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>" /> <table> <tr> <td><input type="text" name="ndata1" /></td> <td><input type="submit" value="送信" name="nds" /></td> </tr> </table>
数値が整数の場合の結果 数値が小数点の数値の場合の結果