你想偷懶?我不建議使用gettype()
函數
不要使用?gettype()?來測試某種類型,因為其返回的字符串在未來的版本中可能需要改變。此外,由于包含了字符串的比較,它的運行也是較慢的。使用?is_*?函數代替。
<?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 是一個JSON';
} else {
echo '變量 $arr_site 不是一個JSON';
}
?>
數組
php判斷變量是不是數組的方法是:可以通過is_array()函數來實現。函數語法:
bool is_array(mixed $var)
如果檢測的變量是數組,則返回TRUE,否則返回FALSE。
<?php
$arr_site = array('Google', 'Runoob', 'Facebook');
if(is_array($arr_site)){
echo '變量 $arr_site 是一個數組';
} else {
echo '變量 $arr_site 不是一個數組';
}
?>
php自帶的類型判斷如下
isset(): //變量是否已經聲明
empty(): //變量是否為空
defined(): //常量是否已經定義 define()
array_key_exists(mixed key, array search): //檢查給定的鍵名或索引是否存在于數組中
is_numeric ( mixed var ): //檢測變量是 否為數字或數字字符串
is_bool(): // 檢測變量是否是布爾型
is_float(): // 檢測變量是否是浮點型 和is_double,is_real()都一樣的用法
is_int(): // 檢測變量是否是整數is_integer() 一樣的 用法
is_string(): // 檢測變量是否是字符串
is_object(): // 檢測變量是否是一個對象
is_array(): // 檢測變量是否是數組
is_null(): // 檢測變量是否為 NULL 值是否是NULL大小寫敏感
結合數組的例子,你只需要更換is_array()
判斷條件即可。
PHP empty、isset、isnull的區別
empty
如果 變量 是非空或非零的值,則 empty() 返回 FALSE。換句話說,”"、0、”0″、NULL、FALSE、array()、var $var、未定義;以及沒有任何屬性的對象都將被認為是空的,如果 var 為空,則返回 TRUE。
isset
如果 變量 存在(非NULL)則返回 TRUE,否則返回 FALSE(包括未定義)。變量值設置為:null,返回也是false;unset一個變量后,變量被取消了。注意,isset對于NULL值變量,特殊處理。
is_null
檢測傳入值【值,變量,表達式】是否是null,只有一個變量定義了,且它的值是null,它才返回TRUE . 其它都返回 FALSE 【未定義變量傳入后會出錯!】