PHP
Post listesi gösterme
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
-
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.
-
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";
}
-
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
Sıradaki ders: Proje sonu - Blog