【PHP初心者】is_int()とis_numeric()を使い分ける【フォームは特に注意】

プログラミング

こんにちは、のくと申します。

今回はPHPで学んだis_int()とis_numeric()の使い分けについてまとめていきたいと思います。

 

まだまだ駆け出しなので理解が及ばない部分があるかもしれませんが、そこは暖かく見ていただければ幸いです。

そもそも何か勘違いしているようであればぜひコメントやTwitterのDMにてご指摘いただけると嬉しいです。

 

Is_int()やis_numeric()はそれが整数かどうかを判断する

これらの関数を使うきっかけになったのは、侍エンジニアでの講座での課題で、数当てゲームを開発することになったからです。

 

つまり、入力された数字と、もともと用意していた数字が一致しているかどうかを判断する関数を設計します。

もし入力されたものがそもそも数字でない場合にはエラーを出したいと思っており、そこで必要になるのが上記の関数です。

 

これらはどちらも、その関数の中に入っているものが整数かどうかを判断することができます。

 

なので例えばこのようにコードを書いてみると、どちらも整数であると判断してくれます。

結果↓

 

フォームに入力された値は全て文字列としてpostされるので関数の使い分けをしよう

しかし、次のようにフォームを用意して、そこに整数を入れてみると、それぞれは違う挙動を示します。

具体的には、下の写真のように、is_intでは整数ではないと返し、is_numericでは整数であると返します。

この理由は、フォームにあります。

つまり、フォームで送信されるものは、全て文字列として送信してしまうからです。

 

20と”20”がそれぞれ異なるのと同じです(私はそう理解しました。何か違ってたらすみません)。

 

ゆえに、私が課題で挑戦している数当てゲームにおいては、フォームで入力された値と照合して返事を用意するため、is_int()よりいis_numeric()の方が適しているということがわかります。

 

 

この課題を解決するのは少し考えたり調べたりすることも多かったですが、今回の記事でまとめた内容などを生かすことでなんとか解決できました。

 

この記事があなたの参考になれば幸いです。

最後までお読みいただきありがとうございました。

コメント