数値関連の比較 is_int()、ctype_digit()、is_numeric()

| 2008年02月05日 02:37

数値関連の調査に使う関数is_int()、ctype_digit()、is_numeric()の違いについてメモ。

is_int()
変数が整数型かどうかを検査する。型の比較。
ctype_digit()
数字かどうかを調べる。与えられた変数がすべて数字ならtrue
is_numeric()
変数が数字または数値文字列であるかを調べる。16進数などもtrue

サンプル


$num = array(
    0,      	// 0
    null,		// 1
    014,		// 2
    -14,    	// 3
    12.2,   	// 4
    '',     	// 5
    'test', 	// 6
    99 .'aa'	// 7
    '794',	// 8
    +0123.45e6	// 9
    0xFF		// 10
    1234		// 11
);

echo '<h5>is_int()</h5>';

echo '<pre>';
for ($i=0; $i<sizeof($num); $i++) {
    echo $i . ':';
    var_dump(is_int($num[$i]));
}

echo '<hr />';

// 型の比較なので下記もtrue
var_dump(is_int(intval('整数型だからtrue')));

echo '</pre>';

echo '<h5>ctype_digit()</h5>';

echo '<pre>';
for ($i=0; $i<sizeof($num); $i++) {
    echo $i . ':';
    var_dump(ctype_digit($num[$i]));
}
echo '</pre>';

echo '<h5>is_numeric()</h5>';

echo '<pre>';
for ($i=0; $i<sizeof($num); $i++) {
    echo $i . ':';
    var_dump(is_numeric($num[$i]));
}
echo '</pre>';

実行結果

is_int()
0:bool(true)
1:bool(false)
2:bool(true)
3:bool(true)
4:bool(false)
5:bool(false)
6:bool(false)
7:bool(false)
8:bool(false)
9:bool(false)
10:bool(true)
11:bool(true)

bool(true)
ctype_digit()
0:bool(false)
1:bool(false)
2:bool(false)
3:bool(false)
4:bool(false)
5:bool(false)
6:bool(false)
7:bool(false)
8:bool(false)
9:bool(false)
10:bool(false)
11:bool(true)
is_numeric()
0:bool(true)
1:bool(false)
2:bool(true)
3:bool(true)
4:bool(true)
5:bool(false)
6:bool(false)
7:bool(false)
8:bool(false)
9:bool(true)
10:bool(true)
11:bool(true)

数値関連の比較 is_int()、ctype_digit()、is_numeric()タグ:

トラックバック
  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/207
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?

このサイトは次のライセンスで保護されています。

Creative Commons License

IT業界、エンジニア関連の求人
Web業界に精通したエージェントなので、希望に合った仕事、プロジェクト、雇用形態を紹介してくれてしっかりと転職活動をサポートしてくれます。
初心者のみ採用!【スノーグラス】WEB系エンジニア募集
初心者のみのweb系エンジニア求人!なんでだ?そろそろ転職考えてるのでここ行ってみようかな・・・
Twitter Updates