「作者主頁」:士別三日wyx
「作者簡介」:CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
「推薦專欄」:對(duì)網(wǎng)絡(luò)安全感興趣的小伙伴可以關(guān)注專欄《網(wǎng)絡(luò)安全入門到精通》
is_array() 可以「檢測」變量是不是「數(shù)組」類型。
語法
bool is_array( $var )
參數(shù)
- $var :需要檢測的變量
返回值
返回布爾類型。
- true :是數(shù)組
- false :不是數(shù)組
一、基本使用
傳入一個(gè)變量「判斷」它是不是「數(shù)組」,這也是最常用的一種方式。
數(shù)組有很多創(chuàng)建方式,直接傳一個(gè)數(shù)組也可以。
注意: is_array() 函數(shù)只能判斷「普通數(shù)組」,不能判斷關(guān)聯(lián)數(shù)組或多維數(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() 只關(guān)心變量的「類型」,而不關(guān)心里面的「值」;即使里面沒有值,也會(huì)返回true。
注意:即使一個(gè)對(duì)象實(shí)現(xiàn)了數(shù)組接口時(shí)(ArrayAccess接口),也會(huì)返回false,因?yàn)閷?duì)象的類型不是array。
實(shí)例:
$arr = array();
var_dump(is_array($arr));
輸出:
bool(true)
三、同時(shí)判斷多個(gè)數(shù)組
is_array() 一次只能判斷「一個(gè)」變量,如果傳入多個(gè)變量,會(huì)報(bào)Warning,并且執(zhí)行結(jié)果也不正確。
實(shí)例:
$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() 是內(nèi)置函數(shù),底層調(diào)用 php_is_type 獲取變量的類型是不是數(shù)組。
PHP_FUNCTION(is_array)
{
php_is_type(INTERNAL_FUNCTION_PARAM_PASSTHRU, IS_ARRAY);
}
這意味著,它只是簡單的判斷變量「類型」,而不會(huì)判斷是否為「空」,這也解釋了,為什么 is_array() 判斷空數(shù)組也會(huì)返回true。這時(shí)候再用 empty() 判斷是否為空,是很有必要的。文章來源:http://www.zghlxwxcb.cn/news/detail-572478.html
需要注意的是 empty() 是語法結(jié)構(gòu),而 is_array() 是函數(shù),語法結(jié)構(gòu)的函數(shù)的「開銷」要小,先用 empty() 判斷可以提升代碼執(zhí)行效率。文章來源地址http://www.zghlxwxcb.cn/news/detail-572478.html
if(!empty($input) && is_array($input)){
// 功能
}
到了這里,關(guān)于【機(jī)器學(xué)習(xí)】分類算法 - KNN算法(K-近鄰算法)KNeighborsClassifier的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!