bool is_numeric ( mixed $var )
如果 var 是數(shù)字和數(shù)字字符串則返回 TRUE,否則返回 FALSE。
For example 1:
<?php $v = is_numeric ('58635272821786587286382824657568871098287278276543219876543') ? true : false; var_dump ($v); ?>
The above script will output:
bool(true)
For example 2:
<?php $str="0"; $strTest=is_numeric(0); var_dump($strTest); ?>
boolean true
is_bool();//判斷是否為布爾型
is_float(); //判斷是否為浮點(diǎn)型
is_int(); //判斷是否為整型
is_numeric(); //判斷是否為數(shù)值型
is_string(); //判斷是否為字符串
is_array(); //判斷是否為數(shù)組
is_object(); //判斷是否為對象
<?php $tests = array( "31", 1380, "1e4", "not numeric", array(), 9.1 ); foreach ($tests as $element) { if (is_numeric($element)) { echo "'{$element}' is numeric", PHP_EOL; } else { echo "'{$element}' is NOT numeric", PHP_EOL; } } ?>
程序運(yùn)行結(jié)果:
'31' is numeric
'1380' is numeric
'1e4' is numeric
'not numeric' is NOT numeric
'Array' is NOT numeric
'9.1' is numeric
字符串 1e4 也被判定為數(shù)字了。
is_numeric函數(shù)不只支持10進(jìn)制的數(shù)字,也支持16進(jìn)制類型數(shù)字。所以在使用中驗(yàn)證純自然數(shù)字如QQ號碼這樣的數(shù)字串,要配合 intval()整型化函數(shù)。
<?php $id = 0xff33669f; if (is_numeric($id)) echo $id, '符合要求。';//output 4281558687符合要求。 else echo $id, '不符合要求。'; ?>
如果需要判斷整數(shù),可以使用 is_int()函數(shù),以免發(fā)生一些字符串也當(dāng)成是合法數(shù)字的情況。
is_numeric能判定一個(gè)變量是否為數(shù)字或數(shù)字字符串,但是它的判定范圍太寬了。整數(shù)、小數(shù)、指數(shù)表示以及16進(jìn)制數(shù)值都會通過判斷。 平時(shí)判定id的時(shí)候,用它就有點(diǎn)不合適。今天發(fā)現(xiàn)一個(gè)新的判定函數(shù):ctype_digit,它可以只判定整數(shù),這樣就比is_numeric好一些。其他還有ctype_xdigit判定16進(jìn)制整數(shù),ctype_alpha判定字母等等函數(shù)。
如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點(diǎn)擊進(jìn)入論壇