PHPを独学するなら、Udemyの動画講座で
PHP 7も使えて快適な エックスサーバー

PHP関数のis_numericもis_intも指定値が数値かどうか調べる関数です。「123」や「100」など、整数かどうかのチェックでは同じように使えますが、フォーム入力値の数値チェックなどでは注意が必要です。

is_numericもis_intも整数のチェックには使える

is_numericもis_intも指定値が数値(整数)かどうかチェックするのに使えます。たとえば、次のチェックでは共に「数値です」と表示されます。

<?php
if (is_numeric(100)) {
    echo "数値です(is_numeric)"; //出力される
}

if (is_int(100)) {
    echo "数値です(is_int)"; //出力される
}
?>
実行結果
数値です(is_numeric)数値です(is_int)

さまざまな処理で整数が求められる場面では同じように使えます。

フォーム入力値の数値チェックにはis_numeric

ただし、フォーム入力値に対して同じような数値チェックを行うと、is_intでは数値と判断されません

次のようなフォームに「100」と入力してチェックすると、is_numericのみ「数値です」と表示されます。

<?php
header("Content-Type: text/html; charset=UTF-8");
?>
<html>
<head>
<title>フォームデータの数値チェック</title>
</head>
<body>
<?php
if (is_numeric(@$_POST["t1"])) {
    echo "数値です(is_numeric)";
}

if (is_int(@$_POST["t1"])) {
    echo "数値です(is_int)";
}
?>

<form method="POST" action="">
  <table>
    <tr>
      <td><input type="text" name="t1"></td>
      <td><input type="submit" value="送信"></td>
    </tr>
  </table>
</form>
</body>
</html>
実行結果

フォーム入力値の数値チェック

これは、フォーム入力値は常に文字列だからです。入力された「100」などの数値は数値文字列になります。入力された内容をそのままチェックする場合は、数値文字列も含めて数値だと判断するis_numeric関数を使います。

is_intは「整数」かどうかのチェックに使う

is_numericもis_intも数値チェックに使えると書きましたが、もう少し正確に違いを説明すると次のようになります。

  • is_numeric --- 数値(整数・小数など)の場合はtrueを返す
  • is_int --- 整数の場合はtrueを返す

つまり、is_numeric関数は小数などを含めた数値全体にtrueを返しますが、is_intは整数のみにtrueを返します。

<?php
if (is_numeric(12.34)) {
    echo "数値です(is_numeric)"; //出力される
}

if (is_int(12.34)) {
    echo "数値です(is_int)";
}
?>
実行結果
数値です(is_numeric)
スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

WordPress

エラーメッセージ

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク