CodeBlanks Logo Icon CodeBlanks

Post listesi gösterme

PHP kursu · Orta seviye · Ders 68/115

foreach'le post dizisini gezip her yazıyı gösterirsin.

foreach ile dizi dönme

Birden çok yazıyı tek bir değişkende tutmak için bir dizi (array) kullanırsın. $posts = [new Post(...), new Post(...)]; ile iki yazıyı aynı diziye koyarsın. Sonra foreach ($posts as $post) { ... } ile dizinin tüm öğelerini sırayla gezer, her öğe için döngü gövdesini çalıştırırsın.

Her döngü adımında $post değişkeni o anki Post örneğini tutar. Böylece $post->title, $post->author gibi erişimlerle her yazının verisini tek tek yazdırabilirsin. Bu desen, liste biçiminde çıktı veren tüm uygulamalarda kullanılır.

summary metodu ile özet çıktı

Post sınıfına summary(): string metodu eklersin. Bu metot $this->title . " - " . $this->author ile başlık ve yazarı birleştirip tek dize döndürür. Böylece her yazıyı yazdırırken tekrar tekrar aynı birleştirmeyi yazmazsın.

Metodu çağırmak için echo $post->summary(); yazarsın. Çıktı İlk yazı - Ayşe gibi olur. Metot, kod tekrarını azaltır ve yazı biçimini tek bir yerden yönetmeni sağlar.

Uygulama summary metodu ve posts dizisi ekle

Post sınıfına public function summary(): string metodunu ekle. İçinde return $this->title . " - " . $this->author; yaz. Sonra $posts adında bir dizi oluştur ve içine new Post("İlk yazı", "Merhaba dünya", "Ayşe") ile new Post("İkinci yazı", "PHP güzel", "Alex") ekle. foreach ($posts as $post) ile gez ve her öğe için echo $post->summary() . "\n"; yaz.

Örnek çözümü göster
string { return $this->title . " - " . $this->author; } ekle. $posts = [ new Post("İlk yazı", "Merhaba dünya", "Ayşe"), new Post("İkinci yazı", "PHP güzel", "Alex"), ]; yaz. foreach ($posts as $post) { echo $post->summary() . "\n"; } ile yazdır.
Örnek çözüm:
<?php
// Birden fazla post'u diziye koy ve summary ile yazdır
class Post {
    public string $title = "";
    public string $content = "";
    public string $author = "";

    public function __construct(string $title, string $content, string $author) {
        $this->title = $title;
        $this->content = $content;
        $this->author = $author;
    }

    public function summary(): string {
        return $this->title . " - " . $this->author;
    }
}

$posts = [
    new Post("İlk yazı", "Merhaba dünya", "Ayşe"),
    new Post("İkinci yazı", "PHP güzel", "Alex"),
];

foreach ($posts as $post) {
    echo $post->summary() . "\n";
}

Kendini test et

  1. foreach döngüsü ne işe yarar?

    • Yalnızca sayıları bir artırır
    • Sınıf tanımlar
    • Dosya okur
    • Bir dizinin tüm öğelerini sırayla gezer
    Cevabı göster

    Bir dizinin tüm öğelerini sırayla gezer — Doğru. foreach, bir dizinin tüm öğelerini sırayla gezer; her öğe için döngü gövdesini çalıştırır.

  2. foreach döngüsünün öğe kısmını tamamla

    foreach ($posts as ____) {
        echo $post->summary() . "\n";
    }
    Cevabı göster
    foreach ($posts as $post) {
        echo $post->summary() . "\n";
    }
  3. Döngü ve dizi kavramlarını eşleştir

    foreach
    Döngü yapısı
    $posts
    Yazı dizisi
    as $post
    Döngü değişkeni
    summary()
    Özet metodu

Orta seviye bölümündeki tüm dersler