İçeriğe geç

PHP · 6/8

Web'e özel: saate göre selamlama

Zamana bağlı bir kuralı test edilebilir girdilerle kurmak.

Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.

Bu sayfada · 9 başlık

Başlamadan önce

Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.

Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

PHP · Web'e özel: saate göre selamlama — videolu atölye: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.

Videoyla adım adım izle

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Web'e özel: saate göre selamlama

Zamana bağlı bir kuralı test edilebilir girdilerle kurmak.

Kavramı kur

Web uygulamasında PHP sunucuda çalışır; tarayıcıya ürettiği yanıt gider. Zaman bilgisi sunucunun ayarlarına göre okunabilir, fakat ziyaretçinin yerel saati aynı olmayabilir. Bu yüzden önce gerçek saat çağrısından bağımsız, açık bir saat girdisiyle karar kuralını kuruyoruz. Böylece sabahı beklemeden sabah dalını test edebilirsin.

Neden böyle çalışıyor?

Birden çok aralıkta ilk doğru dal çalışır. Önce 12’den küçük değerleri, sonra 18’den küçük kalanları ele alırız. İkinci koşulun “kalan değerler” üzerindeki etkisini düşün: 9 zaten ilk dalda işlenmiştir. Sınır noktaları 12 ve 18 hangi mesaja gidecek, doğal dille açıkça yaz.

Çalışma sırası

İleride date gibi işlevlerle saat okuduğunda zaman dilimini ayrıca ayarla ve belgele. İş kuralını bir fonksiyona ayırmak, farklı girdilerle denemeyi kolaylaştırır. Bu örnek oturum, kişisel saat veya kullanıcı profilini otomatik tespit eden bir sistem değildir; önce koşullu akışı öğreniyoruz.

İkinci örnek · 1

$saat açıkça tanımlanmış test girdisidir. Kodun tamamı yazılı derste bulunur.

Kod

<?php
$saat = 9; // Deneme girdisi; sunucunun gerçek saati değil.
if ($saat < 12) {
    echo "Günaydın\n";
} elseif ($saat < 18) {
    echo "İyi günler\n";
} else {
    echo "İyi akşamlar\n";
}

Beklenen sonucu oku

Kalan 18–23 aralığı akşam mesajı alır; geçersiz saatler ayrıca doğrulanmalıdır.

Beklenen çıktı: Günaydın

Bir değeri sen değiştir

11, 12, 17 ve 18 girdileri için mesajı tahmin et. 24 veya -1 gibi geçersiz girdileri yakalayan doğrulama ekle.

Hata nereden gelir?

Sunucu saatini kullanıcının yerel saati sanmak yanlış selamlama üretebilir; zaman dilimi beklentisini belirt.

Kendi çözümünü kur

Selamlama kuralını saat parametresi alan bir fonksiyona taşı. Gerçek zaman kaynağını sonra bağla; önce sınırları sabit girdilerle doğrula.

Çözüm varyasyonu · 1

Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.

Kod

<?php
function selamla(int $saat): string {
    if ($saat < 0 || $saat > 23) { return "Geçersiz saat"; }
    if ($saat < 12) { return "Günaydın"; }
    if ($saat < 18) { return "İyi günler"; }
    return "İyi akşamlar";
}
echo selamla(18) . "\n";
echo selamla(24) . "\n";

Kendini kontrol et

Saat 12, saat < 12 koşulunda neden sabah dalına girmez? Yanıt: Küçüktür karşılaştırması eşitliği kapsamaz; sonraki uygun dal değerlendirilir.

Beklenen çıktı: İyi akşamlar Geçersiz saat

Konu anlatımı

Web uygulamasında PHP sunucuda çalışır; tarayıcıya ürettiği yanıt gider. Zaman bilgisi sunucunun ayarlarına göre okunabilir, fakat ziyaretçinin yerel saati aynı olmayabilir. Bu yüzden önce gerçek saat çağrısından bağımsız, açık bir saat girdisiyle karar kuralını kuruyoruz. Böylece sabahı beklemeden sabah dalını test edebilirsin.

Birden çok aralıkta ilk doğru dal çalışır. Önce 12’den küçük değerleri, sonra 18’den küçük kalanları ele alırız. İkinci koşulun “kalan değerler” üzerindeki etkisini düşün: 9 zaten ilk dalda işlenmiştir. Sınır noktaları 12 ve 18 hangi mesaja gidecek, doğal dille açıkça yaz.

İleride date gibi işlevlerle saat okuduğunda zaman dilimini ayrıca ayarla ve belgele. İş kuralını bir fonksiyona ayırmak, farklı girdilerle denemeyi kolaylaştırır. Bu örnek oturum, kişisel saat veya kullanıcı profilini otomatik tespit eden bir sistem değildir; önce koşullu akışı öğreniyoruz.

İlk örneği oku ve dene

6

Web'e özel: saate göre selamlama

PHP'nin gücü HTML ile iç içe çalışmasıdır. Bu sayfa, açıldığı saate göre farklı bir başlık gösterir. date("H") o anki saati verir.

PHP
<?php $saat = date("H"); ?>

<h1>
  <?php if ($saat < 12): ?>
    Günaydın! ☀️
  <?php else: ?>
    İyi günler! 👋
  <?php endif; ?>
</h1>

▶ Sonuç

Sayfa sabah açılırsa "Günaydın! ☀️", öğleden sonra açılırsa "İyi günler! 👋" yazar.

Adım adım neden böyle çalışıyor?

  1. $saat açıkça tanımlanmış test girdisidir.
  2. İlk dal 0–11 için seçilir.
  3. İkinci dal ilk koşulu geçemeyen 12–17 için uygundur.
  4. Kalan 18–23 aralığı akşam mesajı alır; geçersiz saatler ayrıca doğrulanmalıdır.
106

İkinci çözümlü örnek

Zamana bağlı bir kuralı test edilebilir girdilerle kurmak.

PHP
<?php
$saat = 9; // Deneme girdisi; sunucunun gerçek saati değil.
if ($saat < 12) {
    echo "Günaydın\n";
} elseif ($saat < 18) {
    echo "İyi günler\n";
} else {
    echo "İyi akşamlar\n";
}

▶ Sonuç

Günaydın

Kolaydan zora sen dene

  1. 11, 12, 17 ve 18 girdileri için mesajı tahmin et.
  2. 24 veya -1 gibi geçersiz girdileri yakalayan doğrulama ekle.
  3. Selamlama kuralını saat parametresi alan bir fonksiyona taşı.
İpucunu aç

Gerçek zaman kaynağını sonra bağla; önce sınırları sabit girdilerle doğrula.

Üç görevin açıklamalı çözümünü oku
  1. 11: Günaydın; 12 ve 17: İyi günler; 18: İyi akşamlar.
  2. Önce 0–23 aralığını denetle. -1 ve 24 için Geçersiz saat sonucu ver.
  3. Saat parametreli ve string döndüren selamla fonksiyonu çözüm varyasyonunda verilmiştir; gerçek zamanı bu işlevin dışında oku.
Bir çözüm varyasyonu gör
206

Çözüm varyasyonu

Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.

PHP
<?php
function selamla(int $saat): string {
    if ($saat < 0 || $saat > 23) { return "Geçersiz saat"; }
    if ($saat < 12) { return "Günaydın"; }
    if ($saat < 18) { return "İyi günler"; }
    return "İyi akşamlar";
}
echo selamla(18) . "\n";
echo selamla(24) . "\n";

▶ Sonuç

İyi akşamlar
Geçersiz saat

Yaygın hata ve çözümü

  1. Sunucu saatini kullanıcının yerel saati sanmak yanlış selamlama üretebilir; zaman dilimi beklentisini belirt.
  2. Geçersiz saatleri son else dalında normal kabul etme; aralık kontrolünü önce yap.

Kendini değerlendir

Toplam hesaplayan bir programı nasıl kontrol edersin?

Ezberlemeden açıklayabiliyor musun?

Saat 12, saat < 12 koşulunda neden sabah dalına girmez?

Açıklamalı yanıt

Küçüktür karşılaştırması eşitliği kapsamaz; sonraki uygun dal değerlendirilir.

Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.

Kaynak ve çalışma ortamı

Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.

Resmî dil belgeleri
Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.