CodeBlanks Logo Icon CodeBlanks

Proje sonu - Yapılacaklar listesi

PHP kursu · Başlangıç · Ders 87/116

Tüm parçaları birleştirip çalışan yapılacaklar listesini tamamlarsın.

Proje sonu - Yapılacaklar listesi

Uygulama neredeyse tamam: görev ekledin, listeledin ve birini tamamladın. Son adım, kullanıcıya özet göstermek. "Tamamlanan: 1/3" gibi bir satır, listenin durumunu tek bakışta verir.

Bunun için countDone adında bir fonksiyon yazacağız. Görev dizisini gezip done değeri true olanları sayacak ve bir int döndürecek. Sonra bu sayıyı toplam görev sayısıyla (count($tasks)) birleştirip özet satırını yazdıracağız.

countDone ve özet satırı

Fonksiyon imzası function countDone(array $tasks): int. Gövdede önce $done = 0 ile bir sayacı sıfırlarız. Sonra foreach ($tasks as $task) ile tüm görevleri gezeriz; $task["done"] true ise $done++ ile sayacı bir artırırız.

Fonksiyondan dönen değeri $done = countDone($tasks) ile alırız. Toplam görev sayısı count($tasks) ile gelir. Özet satırı echo "Tamamlanan: " . $done . "/" . count($tasks); şeklinde yazılır.

Uygulama countDone fonksiyonunu yaz ve özet satırını yazdır

countDone fonksiyonunu tanımla: imza function countDone(array $tasks): int. Gövdede önce $done = 0; yaz; sonra foreach ($tasks as $task) ile gez; if ($task["done"]) ise $done++. Fonksiyon return $done; ile bitmeli. Fonksiyondan sonra $done = countDone($tasks); ve echo "Tamamlanan: " . $done . "/" . count($tasks); satırını ekle (satır sonuna \n koyma). Çıktının son satırı Tamamlanan: 1/3 olur.

Örnek çözümü göster
function countDone(array $tasks): int. Gövde: $done = 0; foreach ($tasks as $task) { if ($task["done"]) { $done++; } } return $done;. Sonra $done = countDone($tasks); echo "Tamamlanan: " . $done . "/" . count($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);
// completeTask fonksiyonunu yaz ve 1. görevi tamamla
function completeTask(array $tasks, int $index): array {
    if (isset($tasks[$index])) {
        $tasks[$index]["done"] = true;
    }
    return $tasks;
}
$tasks = completeTask($tasks, 0);
listTasks($tasks);
// countDone fonksiyonunu yaz ve özet satırını yazdır
function countDone(array $tasks): int {
    $done = 0;
    foreach ($tasks as $task) {
        if ($task["done"]) {
            $done++;
        }
    }
    return $done;
}
$done = countDone($tasks);
echo "Tamamlanan: " . $done . "/" . count($tasks);

Proje tamamlandı

Yapılacaklar listesi uygulaması tamamlandı. Beş dersin sonunda şunları yaptın:

  • görevleri ilişkisel dizi olarak ekledin
  • addTask ile yeni görev ekleyen fonksiyon yazdın
  • foreach ile listeyi numaralandırıp yazdırdın
  • completeTask ile görev tamamlama işaretledin
  • countDone ile tamamlanan sayısını hesaplayıp özet yazdırdın

Bu yapı gerçek uygulamalarda da aynı çalışır: görev yöneticisi, alışveriş listesi, adım takibi. Sıradaki bölümlerde nesne yönelimli programlama ve veritabanı ile listeyi kalıcı hale getireceksin.

Kendini test et

  1. Proje sonunda özet satırı neden yazdırırız?

    • Çünkü renkli çıktı gerekir
    • Çünkü kullanıcı ilerlemeyi tek bakışta görmek ister
    • Çünkü listTasks çalışmaz
    • Çünkü done anahtarı silinmeli
    Cevabı göster

    Çünkü kullanıcı ilerlemeyi tek bakışta görmek ister — Doğru. "Tamamlanan: 1/3" gibi özet, kullanıcıya listenin durumunu hemen gösterir.

  2. Proje parçalarını eşle

    addTask
    görev ekler
    listTasks
    görevleri listeler
    completeTask
    görevi tamamlar
    countDone
    tamamlananı sayar
  3. Sayacı sıfırla

    $done ____;
    Cevabı göster
    $done = 0;

Başlangıç bölümündeki tüm dersler