0Pricing
PHP Academy · Aula

foreach e controle de laços

Percorra matrizes com foreach e use break e continue.

foreach e controle de laços é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

foreach: O Laço de Matrizes

foreach é a forma idiomática de percorrer matrizes e objetos no PHP — não é necessário controlar um índice manualmente.

foreach em Matrizes Indexadas

Percorra os valores de uma matriz indexada:

<?php
$fruits = ['apple', 'banana', 'cherry'];

foreach ($fruits as $fruit) {
    echo $fruit . PHP_EOL;
}
// apple
// banana
// cherry

foreach com Chave => Valor

Obtenha a chave e o valor em cada iteração:

<?php
$person = ['name' => 'Alice', 'age' => 30, 'city' => 'London'];

foreach ($person as $key => $value) {
    echo "$key: $value" . PHP_EOL;
}
// name: Alice
// age: 30
// city: London

foreach Aninhado

Percorra matrizes de matrizes, como conjuntos de resultados de um banco de dados:

<?php
$users = [
    ['name' => 'Alice', 'role' => 'admin'],
    ['name' => 'Bob',   'role' => 'user'],
];

foreach ($users as $user) {
    echo $user['name'] . ' is ' . $user['role'] . PHP_EOL;
}

Modificando Elementos de Matrizes

Para modificar valores de uma matriz dentro de foreach, use uma referência &$value:

<?php
$prices = [10, 20, 30];

foreach ($prices as &$price) {
    $price *= 1.1;  // 10% price increase
}
unset($price);  // always unset after reference loop!

print_r($prices); // [11, 22, 33]

break em foreach

Use break para sair antecipadamente de um laço foreach:

<?php
$ids = [1, 2, 3, 4, 5];
$target = 3;

foreach ($ids as $id) {
    if ($id === $target) {
        echo 'Found: ' . $id;
        break;
    }
}

continue em foreach

Use continue para ignorar itens específicos:

<?php
$numbers = [1, 2, 3, 4, 5, 6];

foreach ($numbers as $n) {
    if ($n % 2 === 0) continue;  // skip evens
    echo $n . ' ';  // 1 3 5
}

list() com foreach

Desestruture matrizes internas diretamente com list() ou com a forma abreviada []:

<?php
$coords = [[10, 20], [30, 40], [50, 60]];

foreach ($coords as [$x, $y]) {
    echo "x=$x, y=$y" . PHP_EOL;
}
// x=10, y=20
// x=30, y=40

Percorrendo Objetos

Foreach funciona com objetos — por padrão, percorre as propriedades públicas:

<?php
class Config {
    public string $host = 'localhost';
    public int    $port = 3306;
    public string $db   = 'myapp';
}

foreach (new Config() as $key => $val) {
    echo "$key = $val" . PHP_EOL;
}

Gerador como Alvo de foreach

Os geradores do PHP permitem percorrer grandes conjuntos de dados sem carregar tudo na memória:

<?php
function range100(): Generator {
    for ($i = 1; $i <= 100; $i++) {
        yield $i;
    }
}

foreach (range100() as $num) {
    if ($num > 5) break;
    echo $num . ' ';  // 1 2 3 4 5
}

array_walk vs foreach

array_walk aplica uma função de retorno de chamada a cada elemento diretamente — uma alternativa a foreach para transformações simples:

<?php
$names = ['alice', 'bob', 'carol'];

array_walk($names, function (&$name) {
    $name = ucfirst($name);
});

print_r($names); // ['Alice', 'Bob', 'Carol']

Verificação Rápida

Ao percorrer uma matriz por referência em foreach, o que você deve fazer depois do laço?

Recapitulação: foreach e Controle de Laços

Principais pontos:

  • foreach ($arr as $val) para valores
  • foreach ($arr as $key => $val) para pares de chave e valor
  • Use a referência &$val para modificar diretamente — sempre remova a referência depois
  • break e continue funcionam dentro de foreach
  • Desestruture matrizes internas com [$a, $b]
  • Os geradores permitem que foreach processe grandes conjuntos de dados com uso eficiente da memória

Perguntas Frequentes

A aula “foreach e controle de laços” é grátis?

Sim — o texto completo de “foreach e controle de laços” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “foreach e controle de laços”?

Percorra matrizes com foreach e use break e continue. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “foreach e controle de laços”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. if, elseif e else
  2. Instruções switch e match
  3. Laços for e while
  4. foreach e controle de laços
← Voltar para PHP Academy