is_numeric, is_int, ctype_digitの使い分け
PHP 4月 19th, 2007PHPで数字かどうかチェックしようと調べてみたら、
bool is_numeric ( mixed var )
bool is_int ( mixed var )
bool ctype_digit ( string text )
違いは、
is_numericは引数が数字か数値文字列か
is_intは引数が数値型か
ctype_digitは数値文字列かどうか(”0″から”9″の連なる文字列)
なので
is_numericは10でも”10″でもtrue
is_intは10はtrueだが”10″はfalse、つまり$_POSTされた数字はfalse
ctype_digitは10はfalseだが、”10″はtrue
ということになる。
注意しなければならないのはctype_digitは”0.1″がfalseになるということだ。
ということで、型を意識せず数値かどうかチェックしたい場合、is_numeric
数値演算で型が厳密に数値型かどうか調べたい場合、is_int
“0″から”9″の文字で形成された文字列かチェックしたい場合、ctype_digit(用途があまり見当たらない・・・)
普通に使う場合はis_numericが無難のように感じた。
タグ:phpコメントはまだありません
最初のコメントをどうぞ!
すみませんが、この投稿記事へのコメントは現在受け付けておりません。
Recent Comments