パーマリンク | 2008年02月05日 02:37
数値関連の調査に使う関数is_int()、ctype_digit()、is_numeric()の違いについてメモ。
$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>';
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)
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)
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)
Copyright 2006-2008 KANTENNA.COM Reserved.