Iterators no PHP \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 22 Horas 

 55 Min 

 14 Seg 

   Tempo restante da oferta: 22 55 14 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Iterators no PHP  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

# Iterators no PHP

 Iterator é um mecanismo que permite que um objeto seja iterado e ele próprio fica no controle granular dessa iteração.

 [ Kennedy Tedesco ](https://www.treinaweb.com.br/blog/autor/kennedy-tedesco) 7 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/03/05155042/iterators-php.png)  

Esse é o primeiro artigo de dois sobre Iterators e Generators no [PHP](https://www.treinaweb.com.br/blog/o-que-e-php/ "PHP"). Este será sobre Iterators, que é base para que possamos entender e usar Generators.

Todos os exemplos desse artigo e do artigo de Generators estão disponíveis nesse repositório: https://github.com/KennedyTedesco/php-iterators-generators

[  ![PHP - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/php.svg)   Curso PHP - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/php-fundamentos)

**Iterators**

Nós, como desenvolvedores PHP, estamos acostumados a usar arrays para trabalhar e iterar sobre listas. E se pudermos encapsular esse tipo de comportamento em um objeto? No contexto prático do PHP, *Iterator* é um mecanismo que permite que um objeto seja iterado e ele próprio fica no controle granular dessa iteração. Mas o seu uso não limita a essa “feature”.

Antes, entretanto, é importante destacar o conceito do que é “iterável” no PHP. Existe, inclusive, um pseudo-tipo chamado `iterable` que aceita arrays e objetos que implementem a interface *Traversable*, mas isso veremos mais pra frente.

Então, de forma prática, tudo o que você pode iterar num `foreach` é considerável iterável. E existe até uma curiosidade aqui, de algo não tão comum, é possível iterar até sobre os atributos públicos de um objeto arbitrário qualquer:

```php
