PHPで数値チェック!初心者でもわかる5つのステップ

PHPの数値チェックの方法を解説する記事のサムネイルPHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、初心者であってもPHPを用いて数値チェックができるようになります。

具体的なサンプルコードを用いて説明しますので、読み進めていきましょう。

●PHPとは

PHPはウェブ開発で広く使われているプログラミング言語の一つです。

その特徴は、HTMLに直接埋め込むことができる点や、データベースとの連携が容易である点などが挙げられます。

●PHPでの数値チェックの方法

PHPでは、数値チェックを行うための様々な方法があります。

ここでは、その基本的な方法から応用的な方法までをサンプルコードとともに解説します。

○基本的な数値チェックのサンプルコード

数値チェックの基本は、is_numeric関数を使用する方法です。

下記のコードでは、変数$varが数値かどうかをチェックしています。

$var = "123";
if (is_numeric($var)) {
    echo "数値です。";
} else {
    echo "数値ではありません。";
}

is_numeric関数は、引数が数値かどうかを判定します。

数値であれば”数値です。”と出力し、そうでなければ”数値ではありません。”と出力します。

○float型の数値チェックのサンプルコード

次に、float型(小数)の数値チェックの方法を見ていきましょう。

$var = "12.34";
if (is_float($var + 0)) {
    echo "float型の数値です。";
} else {
    echo "float型の数値ではありません。";
}

ここではis_float関数を用いて数値チェックを行います。引数がfloat型であれば”float型の数値です。

“と出力し、そうでなければ”float型の数値ではありません。”と出力します。

○負の数値チェックのサンプルコード

次に、負の数値のチェック方法を紹介します。

$var = "-123";
if (is_numeric($var) && $var < 0) {
    echo "負の数値です。";
} else {
    echo "負の数値ではありません。";
}

このコードでは、is_numeric関数と比較演算子<を用いて負の数値かどうかをチェックしています。

○範囲指定の数値チェックのサンプルコード

数値が特定の範囲に含まれるかをチェックする方法もよく使われます。

$var = "50";
if (is_numeric($var) && $var >= 0 && $var <= 100) {
    echo "0から100の間の数値です。";
} else {
    echo "0から100の間の数値ではありません。";
}

この例では、is_numeric関数と比較演算子>=<=を使って0から100の間の数値かどうかをチェックしています。

○数値チェック関数の作成のサンプルコード

数値のチェックを行うための専用の関数を作成することも可能です。

このコードでは、is_valid_numberという関数を定義し、引数が数値であること、float型であること、負の数であること、特定の範囲内にあることをチェックしています。

function is_valid_number($var) {
    if (!is_numeric($var)) {
        return "数値ではありません。";
    } elseif (is_float($var + 0)) {
        return "float型の数値です。";
    } elseif ($var < 0) {
        return "負の数値です。";
    } elseif ($var >= 0 && $var <= 100) {
        return "0から100の間の数値です。";
    } else {
        return "その他の数値です。";
    }
}

$var = "50.5";
echo is_valid_number($var);

このコードでは、is_valid_numberという関数を使って引数がどの種類の数値に該当するかを判定しています。

●数値チェックの応用例

数値チェックの応用例として、ユーザーからの入力を検証する場合があります。

たとえば、オンラインショッピングサイトでユーザーが商品の数量を入力するとき、その入力が適切な数値であることをチェックする必要があります。

○入力フォームでの数値チェックのサンプルコード

入力フォームでの数値チェックのサンプルコードを紹介します。

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $quantity = $_POST["quantity"];
    if (!is_valid_number($quantity)) {
        echo "適切な数値を入力してください。";
    } else {
        echo "入力された数量は: " . $quantity;
    }
}

このコードでは、POSTメソッドで送信されたデータに対して数値チェックを行っています。

is_valid_number関数を使って、ユーザーが入力した数量が適切な数値であるかを判定しています。

●注意点と対処法

数値チェックは、ユーザーからの入力が適切な形式と内容であることを確認する重要なステップです。

しかし、いくつかの重要な注意点があります。

  1. ユーザーからの入力は、常に信頼できないと仮定する必要があります。
    ユーザーは誤って無効な数値を入力するかもしれませんし、悪意のあるユーザーは意図的に無効な値を送信するかもしれません。
    そのため、すべてのユーザー入力に対して数値チェックを行うことが重要です。
  2. 数値チェックは、入力が数値であることだけでなく、その数値が期待する範囲内であることも確認します。
    例えば、ある項目が0以上100以下の数値を必要とする場合、ユーザー入力がこの範囲内であることを確認することが必要です。
  3. float型の数値チェックは特に注意が必要です。
    誤差が生じやすいため、比較操作には注意が必要です。可能であれば、適切な精度まで丸めた後で比較を行います。

これらの注意点を踏まえて、次のような対処法を提案します。

  • ユーザーからのすべての入力に対して数値チェックを行い、無効な入力に対してはエラーメッセージを表示します。
  • 必要な場合は、入力値が適切な範囲内にあることを確認します。
  • float型の数値を扱う場合は、適切な精度で数値を丸めるなど、特別な注意を払います。

まとめ

数値チェックは、プログラムが適切な入力を受け取るための重要な工程です。

ユーザーからの入力が必要な場合、特にその入力が数値である場合、数値チェックは必須です。

また、数値チェックは、入力が数値であるだけでなく、その数値が期待する範囲と形式であることも確認します。

特に、float型の数値を扱う場合は注意が必要です。