POSTで受信した値を数字かどうか判定する場合、is_int関数は利用してはいけません。その理由はPOSTで送られた値は全て文字列型として扱われるためです。
そのため、以下のようなコードで判定したとしても、is_int関数はfalseを返してきます。
// num=1234をPOSTでsubmitしたと仮定
$num = $_POST['num'];
// 数値判定
if (is_int($num)) {
echo '整数';
}
else {
echo '文字列';
}
このような場合は正規表現で判定するのがベストです。
// num=1234をPOSTでsubmitしたと仮定
$num = $_POST['num'];
if(preg_match("/^[0-9]+$/",$num)){
echo '整数';
}
else{
echo '文字列';
}
数値の桁数まで指定する場合は、このようになります。(例は4桁の場合)
// num=1234をPOSTでsubmitしたと仮定
$num = $_POST['num'];
if(preg_match("/^[0-9]{4}$/",$num)){
echo '整数';
}
else{
echo '文字列';
}
- 投稿タグ
- PHP




