🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

[Introdução ao PHP] Como Exibir Dinamicamente uma Lista de Notícias/Avisos com o Loop foreach

Você costuma ver listas de "Notícias" ou "Avisos" em sites, não é? É um incômodo ter que atualizar o HTML manualmente toda vez que uma nova informação é adicionada. Na verdade, usando o loop foreach do PHP, você pode automatizar essa tarefa tediosa e criar facilmente uma lista dinâmica que sempre exibe as informações mais recentes.

Neste artigo, explicaremos os fundamentos e as aplicações do loop `foreach` do PHP usando um exemplo prático de exibição de uma lista de avisos, para que até mesmo os iniciantes em programação possam experimentar o "funciona" simplesmente copiando e colando. Vamos dominar juntos o fluxo de pegar dados armazenados em um array, um por um, e exibi-los como uma lista HTML!

Para preparar seu ambiente para rodar o PHP (ambiente de desenvolvimento), se você ainda não configurou o XAMPP, por favor, consulte [Introdução ao PHP] Um Guia Completo para Baixar e Instalar o XAMPP!. Após a instalação, basta colocar seu arquivo PHP na pasta especificada (como `htdocs`), e você estará pronto!

1. O Básico do Básico! Arrays em PHP e o loop foreach

Primeiro, para entender o que o `foreach` faz, vamos começar com seu parceiro, o "array".

Um array é como uma caixa que pode armazenar múltiplos valores juntos. Por exemplo, se você quiser gerenciar informações de avisos como conjuntos de "data" e "título", você pode criar um array como este:

<?php
// Array que armazena as informações das notícias
$news_items = [
  [
    "date" => "2025-07-03",
    "title" => "Aviso sobre o feriado de verão"
  ],
  [
    "date" => "2025-07-01",
    "title" => "Lançamos o novo serviço '〇〇'"
  ],
  [
    "date" => "2025-06-20",
    "title" => "Nosso site foi renovado"
  ]
];

// Verifica o conteúdo do array (para depuração)
print_r($news_items);
?>

A função do loop `foreach` é retirar os itens desta "caixa" chamada array, um por um, e processá-los. A sintaxe é muito simples:

foreach (array as $variavel_temporaria_para_o_elemento) { ...processamento... }

Usando esta sintaxe, vamos tentar extrair apenas os títulos do array anterior em ordem e exibi-los.

<?php
$news_items = [
  ["date" => "2025-07-03", "title" => "Aviso sobre o feriado de verão"],
  ["date" => "2025-07-01", "title" => "Lançamos o novo serviço '〇〇'"],
  ["date" => "2025-06-20", "title" => "Nosso site foi renovado"]
];

// Pega cada informação de notícia do array, uma por uma
foreach ($news_items as $item) {
  // Exibe o título da notícia extraída
  echo $item['title'] . "\n";
}
?>

Desta forma, o `foreach` repete o processo automaticamente até que não haja mais elementos no array. Este é o coração da geração de listas dinâmicas.

2. Na prática! Criando uma lista de avisos com foreach

Agora vamos ao que interessa. Vamos usar o array e o loop `foreach` de antes para criar uma lista de avisos em formato HTML que possa ser exibida em uma página da web. O código a seguir é a forma mais básica combinando HTML e PHP. Se você copiar e colar isso em um arquivo, poderá visualizar o resultado no seu navegador.

<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <title>Lista de Avisos</title>
    <style>
        body { font-family: sans-serif; line-height: 1.6; padding: 20px; }
        .news-list { list-style: none; padding: 0; border-top: 1px solid #ccc; }
        .news-list li { padding: 15px 10px; border-bottom: 1px solid #ccc; }
        .news-date { font-weight: bold; margin-right: 1em; color: #555; }
    </style>
</head>
<body>

    <h1>Avisos</h1>

    <?php
    // Prepara as informações dos avisos como um array
    $notices = [
        [
            "date" => "2025-07-03",
            "title" => "Aviso sobre o feriado de verão"
        ],
        [
            "date" => "2025-07-01",
            "title" => "Lançamos o novo serviço '〇〇'"
        ],
        [
            "date" => "2025-06-20",
            "title" => "Nosso site foi renovado"
        ]
    ];
    ?>

    <ul class="news-list">
        <?php foreach ($notices as $notice): ?>
            <li>
                <span class="news-date"><?php echo htmlspecialchars($notice['date']); ?></span>
                <span class="news-title"><?php echo htmlspecialchars($notice['title']); ?></span>
            </li>
        <?php endforeach; ?>
    </ul>

</body>
</html>

O ponto principal deste código é que o loop `foreach` é executado dentro das tags `