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
// cherryforeach 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: Londonforeach 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=40Percorrendo 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 valoresforeach ($arr as $key => $val)para pares de chave e valor- Use a referência
&$valpara modificar diretamente — sempre remova a referência depois breakecontinuefuncionam 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
- if, elseif e else
- Instruções switch e match
- Laços for e while
- foreach e controle de laços