[PHP]フォームの値が整数かどうかチェックする関数_その2

Read More

前回からの続き


欲しい機能は以下のもの。
・フォームから受け取った値が"整数"かどうか判定する
・"整数"として扱えれば型はstring型、int型どちらでも良い


もう少しざっくり言うと、
-100と0と100が許可できればいいんだよ。
空文字、null、+100は"整数"じゃないのでダメ。


さて、PHP関数を調べていたら似たような機能を提供しているものがあった。
# 昔使ったことがあったけど忘れてた


その名は、
ctype_digit()


だけど調べていくうちにこれも色々問題があった。


・Verによって挙動の差異がある
PHP 5.1.0 より前のバージョンでは、この関数は text が空文字列の場合に TRUE を返す。 

・仮引数は必ず文字列型として渡す必要がある
int型で値を渡すとfalseが返る。

・自然数にのみ対応
負数に対応していない。マイナスには使えない。


うーん、int型で渡すとfalseが出るのはまあいいんだけど、
Verで差異があるのと負数に対応してないのはちょっとなあ…


てことでやっぱりこれもそのままでは使えません。




--
自作関数 isAboutInt()のネーミングの話。


既に数値チェック系関数てのは世の中にいっぱいあってどれも名前が似てたりする。
isN()とかisNum()とかisInt()とかisIntNum()とかisNan()とか。


これらに近い名前を使うと自分が挙動を勘違いしてしまう恐れがあったので、

かぶらない名前=isAboutInt()

にしている。


そもそも"整数"は英語で言うと"integer"なので、
intって言葉を安易に使うと、例えばisInt()とかまんまだと、
これは"型"のことを指しているんだなと考えてしまいそう。


今回の関数は、値の見た目が整数なら"型"は気にしないわけだし、
そういう意味でAboutって付けてる。

About=おおよそ



おおよそ、おおよそ、