美文网首页
php count函数

php count函数

作者: xiaolin_188 | 来源:发表于2016-06-23 12:44 被阅读0次

计算数组中的单元数目或对象中的属性个数。

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

/*数字 输出1*/
echo count(1) . '<br>'; //1

/*普通数组*/
$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

/*普通对象 如果不转换成数组,永远输出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

总结

进入switch语句检测参数类型:

  1. 如果是NULL,直接返回0
  2. 如果是数组,调用php_count_recursive函数机选数组元素个数
  3. 如果是对象,先检查是否为数组对象(array like object),如果是,则计算数组对象的数量
  4. 否则,如果对象实现了Countable接口,则调用Countable的count方法
  5. 最后,其他类型比如整型或字符串,都返回1。

相关文章

网友评论

      本文标题:php count函数

      本文链接:https://www.haomeiwen.com/subject/iuwndttx.html