php count函數(shù)

計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù)。

int count (mixed $array_or_countable [, int $mode = COUNT_NORMAL ])

/*null 輸出0*/
echo count(null) . '<br>'; //0

/*字符串 輸出1*/
echo count('null') . '<br>'; //1
echo count('abc') . '<br>'; //1

/*數(shù)字 輸出1*/
echo count(1) . '<br>'; //1

/*普通數(shù)組*/
$arr = [1, 2, 3, 4];
echo count($arr) . '<br>'; //4

/*不遞歸輸出*/
$arr = [1, 2, 3, 4, [5, 6]];
echo count($arr) . '<br>'; //5
echo count($arr, 0) . '<br>'; //5
echo count($arr, COUNT_NORMAL) . '<br>'; //5

/*遞歸輸出*/
echo count($arr, 1) . '<br>';  //7
echo count($arr, COUNT_RECURSIVE) . '<br>';  //7

/*普通對象 如果不轉(zhuǎn)換成數(shù)組,永遠輸出1*/ 
class User
{
    private $name;
    private $address;
}

$user = new User();
echo count($user) . '<br>';  //1
print_r((array) $user);  //Array ( [Username] => [Useraddress] => ) 
echo count((array) $user) . '<br>';  //2

/*array like object  輸出count方法返回值*/ 
class User1 extends ArrayObject
{
    public function count() {
        return 4;
    }
}
 
$user1 = new User1();
echo count($user1) . '<br>';  //4

/*Countable 輸出count方法返回值*/ 
class User2 implements Countable 
{
    public function count() {
        return 5;
    }
}
 
$user2 = new User2();
echo count($user2) . '<br>';  //5

總結(jié)

進入switch語句檢測參數(shù)類型:

  1. 如果是NULL,直接返回0
  2. 如果是數(shù)組,調(diào)用php_count_recursive函數(shù)機選數(shù)組元素個數(shù)
  3. 如果是對象,先檢查是否為數(shù)組對象(array like object),如果是,則計算數(shù)組對象的數(shù)量
  4. 否則,如果對象實現(xiàn)了Countable接口,則調(diào)用Countable的count方法
  5. 最后,其他類型比如整型或字符串,都返回1。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容