HOME>WEBプログラム覚書>数値関連の比較 is_int()、ctype_digit()、is_numeric()

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

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

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

サンプル

PHP

  1. <?php
  2. $num = array(
  3.     0,          // 0
  4.     null,       // 1
  5.     014,        // 2
  6.     -14,        // 3
  7.     12.2,       // 4
  8.     '',         // 5
  9.     'test',     // 6
  10.     99 .'aa'    // 7
  11.     '794',  // 8
  12.     +0123.45e6  // 9
  13.     0xFF        // 10
  14.     1234        // 11
  15. );
  16.  
  17. echo '<h5>is_int()</h5>';
  18.  
  19. echo '<pre>';
  20. for ($i=0; $i<sizeof($num); $i++) {
  21.     echo $i . ':';
  22.     var_dump(is_int($num[$i]));
  23. }
  24.  
  25. echo '<hr />';
  26.  
  27. // 型の比較なので下記もtrue
  28. var_dump(is_int(intval('整数型だからtrue')));
  29.  
  30. echo '</pre>';
  31.  
  32. echo '<h5>ctype_digit()</h5>';
  33.  
  34. echo '<pre>';
  35. for ($i=0; $i<sizeof($num); $i++) {
  36.     echo $i . ':';
  37.     var_dump(ctype_digit($num[$i]));
  38. }
  39. echo '</pre>';
  40.  
  41. echo '<h5>is_numeric()</h5>';
  42.  
  43. echo '<pre>';
  44. for ($i=0; $i<sizeof($num); $i++) {
  45.     echo $i . ':';
  46.     var_dump(is_numeric($num[$i]));
  47. }
  48. echo '</pre>';
  49. ?>

実行結果

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)
投稿日 2008年2月 5日 02:37
カテゴリ PHP
タグ テストコード | 動作確認
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1141

コメント

コメントする
Name
Email Address
URL