Ce face iterator_count
count nu merge pe generatoare. iterator_count parcurge iteratorul și numără câte elemente a primit.
Pentru că parcurge iteratorul, un generator nu mai poate fi folosit după numărare.
Parametri
| Parametru | Descriere |
|---|---|
$iterator |
Iteratorul, generatorul sau tabloul numărat. |
Ce returnează
Numărul de elemente.
Exemple
Exemplul 1: Liniile unui fișier citite cu un generator
<?php
file_put_contents("lista.txt", "Ana\nMihai\nIoana\n");
function linii(string $fisier): Generator
{
$f = fopen($fisier, "r");
while (($linie = fgets($f)) !== false) {
yield trim($linie);
}
fclose($f);
}
echo iterator_count(linii("lista.txt")) . " linii";
Rezultat
3 linii
Exemplul 2: Fișierele dintr-un director
<?php
mkdir("poze");
touch("poze/a.jpg");
touch("poze/b.jpg");
echo iterator_count(new FilesystemIterator("poze"));
Rezultat
2
Greșeli frecvente
- Numeri un generator și apoi încerci să îl parcurgi cu
foreach. Generatorul a fost deja consumat.
Comenzi înrudite
count: Returnează numărul de elemente dintr-un tablou.iterator_to_array: Copiază toate elementele unui iterator sau generator într-un tablou obișnuit.is_countable: Verifică dacă o valoare poate fi numărată cu count: un tablou sau un obiect Countable.