「is_numeric」タグアーカイブ

整数かどうか s_numeric,is_int,ctype_digit (PHP)

以前数値かどうか?というエントリで記述したようにPHPでの数値かどうかの判定にはis_intが使えると書きました。他にもctype_digitという関数があるのですが、この関数は”文字列”が”数字”かどうかを判定するので、string型で用いるのが前提になっています。つまり、float型はもちろん、int型もすべてfalseと判断されます。
いくつかの例でテストした結果を一覧表にしてみました。(PHPのバージョンは5.2.5)
続きを読む 整数かどうか s_numeric,is_int,ctype_digit (PHP)

数値かどうか? (PHP)

PHPでは変数が数値かどうかを確かめるための関数があります。
is_numeric($nanika)で$nanikaが数値ならtrueを返しますが、ここで注意が必要です。
注意としては、0xで始まる16進数や、小数、またはピリオドから始まる数字(たとえば”.12″など)も数値として判断されます。
整数のみを判別する場合は、is_int()を使うべきかもしれません。小数かどうかを判定するis_floatという関数もありますがこちらは、整数をfalseとし、”1e7″などの科学記法はtrueと判断されます。いわゆる「数字」というものがどれを指すか(指したいのか)を、十分考慮に入れて使用する必要があります。そのため、正規表現を用いた方が確実な場合もあります。