PHPで数値かどうかのチェック

ユーザーから入力された値が10進整数値かどうかのチェックにis_numeric()関数を使用してはいけません。
is_numeric()関数は数字または数値形式の文字列であるかどうかを調べる関数なので、16進数や浮動小数点数の形式であってもtrueを返します。
例えば「0xFF」や「12.34」や「+1」という値が入力されてもtrueを返してしまいます。

なので数値チェックを行うのは正規表現を使用するのがいいかなと思います。

preg_match("/^[0-9]+$/", $num)

というか数値チェックに限らず、ある程度の入力チェックであれば正規表現での記述で十分なんじゃないかなと思います。

でもあんまり長くなると今度は可読性が悪くなるのかな。