PHP
Görev listeleme
foreach ile görevleri numaralandırıp listeler sin.
Görevleri listeleme
Görevleri ekrana yazdırmak için foreach döngüsünü kullanırız. foreach ($tasks as $i => $task) yazdığında PHP her dönüşte görevin indeksini $i'ye ve görevin kendisini $task'a atar.
İndeks 0'dan başlar, ama kullanıcılar 1'den başlayan numaralar görmek ister. Bu yüzden ($i + 1) ile numarayı bir ileri alırız. Görevin başlığına $task["title"] ile ulaşırız.
Listeyi fonksiyona paketleyip listTasks($tasks) şeklinde çağıracağız; böylece istediğimiz her yerde yeniden kullanabiliriz.
Satır biçimi ve done işareti
Her görev satırını 1. Ekmek al [ ] biçiminde yazdırırız. Köşeli parantez içindeki işaret, görevin tamamlandı durumunu gösterir: [ ] bekliyor, [x] tamamlandı.
Bu işareti $task["done"] değerine göre seçeriz. if ($task["done"]) koşulu true olduğunda işaret [x], değilse [ ] olur. Böylece listeyi her çağırdığımızda güncel durumu görürüz.
Uygulama listTasks fonksiyonunu yaz ve çağır
listTasks fonksiyonunu tanımla: imza function listTasks(array $tasks): void. Gövdede foreach ($tasks as $i => $task) ile diziyi gez. Her görev için önce $mark = "[ ]"; if ($task["done"]) ise $mark = "[x]". Sonra echo ($i + 1) . ". " . $task["title"] . " " . $mark . "\n"; satırını yaz. Fonksiyondan sonra listTasks($tasks); çağrısını yap. Çıktı üç satır olur: 1. Ekmek al [ ], 2. Süt al [ ], 3. Çöpü at [ ].
Örnek çözümü göster
function listTasks(array $tasks): void. Gövdede foreach ($tasks as $i => $task) { $mark = "[ ]"; if ($task["done"]) { $mark = "[x]"; } echo ($i + 1) . ". " . $task["title"] . " " . $mark . "\n"; }. Sonra listTasks($tasks);.
Örnek çözüm:
<?php
// Görev dizisini başlat ve ilk görevi ekle
$tasks = [];
$tasks[] = ["title" => "Ekmek al", "done" => false];
echo "Görev sayısı: " . count($tasks) . "\n";
// addTask fonksiyonunu tanımla ve iki görev daha ekle
function addTask(array $tasks, string $title): array {
$tasks[] = ["title" => $title, "done" => false];
return $tasks;
}
$tasks = addTask($tasks, "Süt al");
$tasks = addTask($tasks, "Çöpü at");
echo "Görev sayısı: " . count($tasks) . "\n";
// listTasks fonksiyonunu yaz ve çağır
function listTasks(array $tasks): void {
foreach ($tasks as $i => $task) {
$mark = "[ ]";
if ($task["done"]) {
$mark = "[x]";
}
echo ($i + 1) . ". " . $task["title"] . " " . $mark . "\n";
}
}
listTasks($tasks);
Kendini test et
-
foreach ($tasks as $i => $task) ifadesinde $i nedir?
- Görevin dizideki indeksi (0'dan başlar)
- Görevin başlığı
- Görevin done değeri
- Dizinin toplam uzunluğu
Cevabı göster
Görevin dizideki indeksi (0'dan başlar) — Doğru. $i, dizideki sırayı veren indeks; ilk görev için 0'dır.
-
foreach başlangıcını tamamla
foreach ($tasks as ____) {
echo $task["title"];
}
Cevabı göster
foreach ($tasks as $i => $task) {
echo $task["title"];
}
-
foreach parçalarını eşle
- foreach
- diziyi gezer
- as $i => $task
- indeks ve değeri verir
- $task["title"]
- görevin başlığı
- ($i + 1)
- 1'den başlayan numara
Sıradaki ders: Görev tamamlama