你想偷懶?我不建議使用gettype()
函數(shù)
不要使用?gettype()?來(lái)測(cè)試某種類型,因?yàn)槠浞祷氐淖址谖磥?lái)的版本中可能需要改變。此外,由于包含了字符串的比較,它的運(yùn)行也是較慢的。使用?is_*?函數(shù)代替。
<?php
echo gettype(102) . PHP_EOL;
echo gettype(true) . PHP_EOL;
echo gettype(' ') . PHP_EOL;
echo gettype(null) . PHP_EOL;
echo gettype(array()) . PHP_EOL;
echo gettype(new stdclass());
?>
輸出
integer
boolean
string
NULL
array
object
JSON
<?php
if(json_decode($arr_site)){
echo '變量 $arr_site 是一個(gè)JSON';
} else {
echo '變量 $arr_site 不是一個(gè)JSON';
}
?>
數(shù)組
php判斷變量是不是數(shù)組的方法是:可以通過(guò)is_array()函數(shù)來(lái)實(shí)現(xiàn)。函數(shù)語(yǔ)法:
bool is_array(mixed $var)
如果檢測(cè)的變量是數(shù)組,則返回TRUE,否則返回FALSE。
<?php
$arr_site = array('Google', 'Runoob', 'Facebook');
if(is_array($arr_site)){
echo '變量 $arr_site 是一個(gè)數(shù)組';
} else {
echo '變量 $arr_site 不是一個(gè)數(shù)組';
}
?>
php自帶的類型判斷如下
isset(): //變量是否已經(jīng)聲明
empty(): //變量是否為空
defined(): //常量是否已經(jīng)定義 define()
array_key_exists(mixed key, array search): //檢查給定的鍵名或索引是否存在于數(shù)組中
is_numeric ( mixed var ): //檢測(cè)變量是 否為數(shù)字或數(shù)字字符串
is_bool(): // 檢測(cè)變量是否是布爾型
is_float(): // 檢測(cè)變量是否是浮點(diǎn)型 和is_double,is_real()都一樣的用法
is_int(): // 檢測(cè)變量是否是整數(shù)is_integer() 一樣的 用法
is_string(): // 檢測(cè)變量是否是字符串
is_object(): // 檢測(cè)變量是否是一個(gè)對(duì)象
is_array(): // 檢測(cè)變量是否是數(shù)組
is_null(): // 檢測(cè)變量是否為 NULL 值是否是NULL大小寫(xiě)敏感
結(jié)合數(shù)組的例子,你只需要更換is_array()
判斷條件即可。
PHP empty、isset、isnull的區(qū)別
empty
如果 變量 是非空或非零的值,則 empty() 返回 FALSE。換句話說(shuō),”"、0、”0″、NULL、FALSE、array()、var $var、未定義;以及沒(méi)有任何屬性的對(duì)象都將被認(rèn)為是空的,如果 var 為空,則返回 TRUE。
isset
如果 變量 存在(非NULL)則返回 TRUE,否則返回 FALSE(包括未定義)。變量值設(shè)置為:null,返回也是false;unset一個(gè)變量后,變量被取消了。注意,isset對(duì)于NULL值變量,特殊處理。
is_null
檢測(cè)傳入值【值,變量,表達(dá)式】是否是null,只有一個(gè)變量定義了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定義變量傳入后會(huì)出錯(cuò)!】