「作者主頁」:士別三日wyx
「作者簡介」:CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡安全領域優(yōu)質創(chuàng)作者
「推薦專欄」:對網(wǎng)絡安全感興趣的小伙伴可以關注專欄《網(wǎng)絡安全入門到精通》
is_array() 可以「檢測」變量是不是「數(shù)組」類型。
語法
bool is_array( $var )
參數(shù)
- $var :需要檢測的變量
返回值
返回布爾類型。
- true :是數(shù)組
- false :不是數(shù)組
一、基本使用
傳入一個變量「判斷」它是不是「數(shù)組」,這也是最常用的一種方式。
數(shù)組有很多創(chuàng)建方式,直接傳一個數(shù)組也可以。
注意: is_array() 函數(shù)只能判斷「普通數(shù)組」,不能判斷關聯(lián)數(shù)組或多維數(shù)組。
實例:
$arr = array(1,2,3);
var_dump(is_array($arr));
var_dump(is_array(array(1,2,3)));
var_dump(is_array([1,2,3]));
輸出:
bool(true)
bool(true)
bool(true)
二、空數(shù)組
is_array() 只關心變量的「類型」,而不關心里面的「值」;即使里面沒有值,也會返回true。
注意:即使一個對象實現(xiàn)了數(shù)組接口時(ArrayAccess接口),也會返回false,因為對象的類型不是array。
實例:
$arr = array();
var_dump(is_array($arr));
輸出:
bool(true)
三、同時判斷多個數(shù)組
is_array() 一次只能判斷「一個」變量,如果傳入多個變量,會報Warning,并且執(zhí)行結果也不正確。
實例:
$arr = array(1);
var_dump(is_array($arr, $arr));
輸出:
Warning: is_array() expects exactly 1 parameter,
bool(false)
四、empty()和is_array()的區(qū)別?
問題場景:先 empty() 判斷是否為空,再 is_array() 判斷是不是數(shù)組; empty() 是否可以省略。
if(is_array($input) && !empty($input)){
// 功能
}
is_array() 是內置函數(shù),底層調用 php_is_type 獲取變量的類型是不是數(shù)組。
PHP_FUNCTION(is_array)
{
php_is_type(INTERNAL_FUNCTION_PARAM_PASSTHRU, IS_ARRAY);
}
這意味著,它只是簡單的判斷變量「類型」,而不會判斷是否為「空」,這也解釋了,為什么 is_array() 判斷空數(shù)組也會返回true。這時候再用 empty() 判斷是否為空,是很有必要的。文章來源:http://www.zghlxwxcb.cn/news/detail-665536.html
需要注意的是 empty() 是語法結構,而 is_array() 是函數(shù),語法結構的函數(shù)的「開銷」要小,先用 empty() 判斷可以提升代碼執(zhí)行效率。文章來源地址http://www.zghlxwxcb.cn/news/detail-665536.html
if(!empty($input) && is_array($input)){
// 功能
}
到了這里,關于PHP is_array()函數(shù)詳解,PHP判斷是否為數(shù)組的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!