Cevap kontrolü
Kullanıcının cevabını doğru cevapla karşılaştıran method yazarsın.
Cevabı kontrol eden metot
Soru sınıfına isCorrect(int $choice): bool metodunu ekleyeceksin. Bu metot, kullanıcının seçtiği indeksi doğru cevap indeksiyle karşılaştırır ve true ya da false döndürür.
PHP'de iki değer karşılaştırırken === (katı eşitlik) kullanmak daha güvenlidir. === hem tür hem değer kontrol eder; örneğin 0 == "0" true verir ama 0 === "0" false verir. Soru cevabında indeksleri katı şekilde karşılaştırmak beklenmeyen sonuçları önler.
Katı karşılaştırma ile dönüş
İçeride return $choice === $this->answerIndex; yazarsın. Eğer kullanıcı doğru indeksi seçtiyse true, yanlış seçtiyse false döner.
Bu metodu çağırmak için $q->isCorrect(0) yazarsın; 0 kullanıcının ilk seçeneği işaret ettiği anlamına gelir. Sonucu yazdırırken ternary operatörü işe yarar: echo $q->isCorrect(0) ? "doğru" : "yanlış";. Bu, if-else yerine tek satırda koşullu çıktı verir.
Uygulama isCorrect metodunu ekle
Question sınıfına public function isCorrect(int $choice): bool metodunu ekle. İçinde return $choice === $this->answerIndex; ile katı karşılaştırma yap. Sonra $q örneğinde metodu çağır: son satırı echo $q->isCorrect(0) ? "doğru" : "yanlış"; olarak değiştir.
Örnek çözümü göster
bool { return $choice === $this->answerIndex; } ekle. Son satırı echo $q->isCorrect(0) ? "doğru" : "yanlış"; olarak değiştir.
Örnek çözüm:
<?php
// Question sınıfına cevap kontrolü ekle
class Question {
public string $text = "";
public array $options = [];
public int $answerIndex = 0;
public function __construct(string $text, array $options, int $answerIndex) {
$this->text = $text;
$this->options = $options;
$this->answerIndex = $answerIndex;
}
public function isCorrect(int $choice): bool {
return $choice === $this->answerIndex;
}
}
$q = new Question("PHP nedir?", ["Betik dili", "Veritabanı", "Tarayıcı"], 0);
echo $q->isCorrect(0) ? "doğru" : "yanlış";
Kendini test et
-
=== ile == arasındaki fark nedir?
- İkisi de aynıdır, fark yoktur
- === yalnızca metinler için kullanılır
- === tür ve değer kontrol eder, == yalnızca değer
- == tür kontrol eder, === değer kontrol eder
Cevabı göster
=== tür ve değer kontrol eder, == yalnızca değer — Doğru. === hem tür hem değer kontrol eder; == yalnızca değer kontrol eder ve tür dönüşümü yapabilir.
-
isCorrect return ifadesini tamamla
public function isCorrect(int $choice): bool { return ____; }Cevabı göster
public function isCorrect(int $choice): bool { return $choice === $this->answerIndex; } -
Karşılaştırma kavramlarını eşleştir
- ===
- Katı eşitlik
- ==
- Gevşek eşitlik
- bool
- Mantıksal tür
- return
- Değer döndürür