---
# System prepended metadata

title: '筆記_PHP函式_count()/sizeof()|re:(int)'
tags: [PHP]

---

# 筆記_PHP函式_count()/sizeof()|re:(int)

---
###### tags: `PHP`

---

[count](https://www.php.net/manual/zh/function.count.php)

[The Countable interface](https://www.php.net/manual/zh/class.countable.php)

- count()
- sizeof()

>>> 統計陣列(數組)中的元素個數數量
>>> 以及
>>> **符合Countable （計數器接口）**

&nbsp;
**!!重要!!**

```php=
var_dump(count(null)); // PHP 7.2 起

var_dump(count(false)); // PHP 7.2 起
```
&nbsp;

**!!重要!!**
`Countable` 接口很簡單，如果你的 類 需要一個**统计對象内部某些元素個數的方法**, 你可以使用 Countable 接口

>>> **统計對象内部某些元素個數的方法!!**
>>> **统計對象内部某些元素個數的方法!!**
>>> **统計對象内部某些元素個數的方法!!**

```php=
class User implements Countable {
  private $arr = array();

  public function insert($name){
    array_push($this->arr, $name);
  }
  public function count(){
    return count($this->arr);
  }

}

$user = new User();
$user->insert("Shanhuhai");
$user->insert("Wudy");
$user->insert("Wudy_123");
echo $user->count().PHP_EOL;
// return 3

```

---
公式 **返回int**
**不存在返回int(0)**
**存在但不是數組返回int(1)**

```php=
count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int
```
> `$array_or_countable`: 通常可以為數組或是對象

> `$mode`: 則是選填項目，如果要計算的是二維以上陣列，`$mode` 可以填入 COUNT_RECURSIVE 或數字 1 ，$mode 的預設值為 0，以下是統計的範例。

---
## 不存在返回int(0)
```php=
$a_c = count($a);
var_dump($a_c);


$b = NULL;
$b = count($b);
var_dump($b);

```
---
## 存在但不是數組返回int(1)
```php=
$b= 2;      
$b = 'A';  // string
$b =false; // boolen

$b = count($b);
var_dump($b);
```






