(PHP 4, PHP 5, PHP 7, PHP 8)
count — Bir dizideki veya bir Countable nesnesindeki eleman sayısını döndürür
Bir dizi belirtilirse dizideki eleman sayısını döndürür. Countable arayüzünü gerçekleyen bir nesne belirtilirse Countable::count() yönteminin dönüş değerini döndürür.
girdi
Dizi veya Countable nesnesi.
kip
İsteğe bağlı kip
bağımsız değişkenine COUNT_RECURSIVE
(veya 1) atanırsa, count() işlevi diziyi ardışık olarak sayar. Böylece çok boyutlu bir dizinin bütün elemanları sayılabilir. count() sonsuz iç içeliği algılayacak yetenekte değildir.
count() işlevi sonsuz döngüden kaçınmak için iç içeliği saptayabilir, fakat bunu her yaptığında (dizinin kendisini birden fazla içerdiği durumda) bir E_WARNING
çıktılar ve beklenenden daha yüksek bir miktar döndürür.
girdi
'deki eleman sayısını döndürür. PHP 8.0.0 öncesinde girdi
bir dizi veya Countable arayüzü ile gerçeklenmiş bir nesne değilse 1
dönerdi, girdi
'nin null
olması durumunda ise 0
dönerdi.
Sürüm: | Açıklama |
---|---|
8.0.0 | değer bağımsız değişkenine geçerli olmayan sayılabilir türler aktarıldığında işlev artık bir TypeError yavruluyor. |
7.2.0 | değer bağımsız değişkenine geçerli olmayan sayılabilir türler aktarıldığında işlev artık bir uyarı çıktılıyor. |
Örnek 1 - count() örneği
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
+$b[0] = 7;
+$b[5] = 9;
+$b[10] = 11;
+var_dump(count($b));
?>
Yukarıdaki örneğin çıktısı:
int(3) int(3)
Örnek 2 - count() geçersiz Countable|array örneği (kötü örnek - yapmaktan sakının)
<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
var_dump(count(null));
var_dump(count(false));
?>
Yukarıdaki örneğin çıktısı:
int(3) int(0) int(1)
Yukarıdaki örneğin PHP 7.2 çıktısı::
int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 int(1)
Yukarıdaki örneğin PHP 8 çıktısı:
int(3) Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12
Örnek 3 - Ardışık count() örneği
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// ardışık sayım
var_dump(count($food, COUNT_RECURSIVE));
// normal sayım
var_dump(count($food));
?>
Yukarıdaki örneğin çıktısı:
int(8) int(2)
Örnek 4 - Countable nesnesi
<?php
class CountOfMethods implements Countable
{
private function someMethod()
{
}
public function count(): int
{
return count(get_class_methods($this));
}
}
$obj = new CountOfMethods();
var_dump(count($obj));
?>
Yukarıdaki örneğin çıktısı:
int(2)