Menu
Coddy logo textTech

Tip Bildirimleri

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 63 / 91.

Tür bildirimleri, metotlarınızın ve özelliklerinizin tam olarak hangi türleri kabul etmesi ve döndürmesi gerektiğini belirtmenize olanak tanır. Bu, kodunuzu daha öngörülebilir hale getirir ve hataları erkenden yakalamanıza yardımcı olur - yanlış tür geçirilirse PHP bir hata fırlatacaktır.

Metot parametreleri, dönüş değerleri ve sınıf özellikleri için tür belirtebilirsiniz:

<?php
class Calculator {
    public int $result = 0;
    
    public function add(int $a, int $b): int {
        $this->result = $a + $b;
        return $this->result;
    }
}

$calc = new Calculator();
echo $calc->add(5, 3);

Çıktı:

8

PHP birkaç skaler türü destekler: int, float, string, bool ve array. Ayrıca sınıf adlarını, arayüzleri ve hiçbir şey döndürmeyen metotlar için object, mixed ve void gibi özel türleri de kullanabilirsiniz:

<?php
class Logger {
    public function log(string $message): void {
        echo "Log: $message";
    }
}

$logger = new Logger();
$logger->log("System started");

Çıktı:

Log: System started

Bir class veya interface ismiyle type-hint kullandığınızda, PHP yalnızca uyumlu nesnelerin kabul edilmesini sağlar. Bu, metotların manuel doğrulama yapmadan aldıkları verilere güvenebildiği, güvenilir OOP uygulamaları inşa etmek için temeldir.

challenge icon

Görev

Kolay

Tür bildirimlerinin gücünü gösteren bir sıcaklık dönüştürücü oluşturalım. Metotların hangi türleri kabul ettiğini ve döndürdüğünü açıkça belirttiği, kodunuzu kendi kendini belgeleyen hale getiren ve tür hatalarını erkenden yakalayan bir sistem oluşturacaksınız.

Kodunuzu iki dosya halinde düzenleyeceksiniz:

  • TemperatureConverter.php — Celsius ve Fahrenheit arasındaki dönüşümleri yöneten bir TemperatureConverter sınıfı oluşturun. Sınıfınız şunları yapmalıdır:
    • 0.0 olarak başlatılmış, $lastResult adında public bir float özelliğine sahip olmalıdır
    • Celsius'u (celsius * 9/5) + 32 formülünü kullanarak Fahrenheit'a dönüştüren, sonucu $lastResult içinde saklayan ve döndüren bir toFahrenheit(float $celsius): float metoduna sahip olmalıdır
    • Fahrenheit'ı (fahrenheit - 32) * 5/9 formülünü kullanarak Celsius'a dönüştüren, sonucu $lastResult içinde saklayan ve döndüren bir toCelsius(float $fahrenheit): float metoduna sahip olmalıdır
    • Son sonucu, sonuç virgülden sonra 2 basamağa yuvarlanmış şekilde "[lastResult] [unit]" formatında döndüren bir formatResult(string $unit): string metoduna sahip olmalıdır
    • $lastResult değerini tekrar 0.0 yapan ve hiçbir şey döndürmeyen bir reset(): void metoduna sahip olmalıdır
  • main.php — TemperatureConverter dosyasını dahil edin. İki girdi alacaksınız: bir sıcaklık değeri ve bir dönüşüm yönü ("toF" veya "toC").

    Bir TemperatureConverter oluşturun ve yöne bağlı olarak uygun dönüşümü gerçekleştirin. Ardından, doğru birim sembolünü (Fahrenheit için "°F" veya Celsius için "°C") kullanarak biçimlendirilmiş sonucu yazdırın.

Her metodun parametre türlerini ve dönüş türlerini nasıl açıkça belirttiğine dikkat edin. reset() üzerindeki void dönüş türü, metodun bir değer döndürmeden bir eylem gerçekleştirdiğini açıkça iletir. Bu, kodunuzun sözleşmesini okuyan herkes için net hale getirir.

Kendin dene

<?php

require_once 'TemperatureConverter.php';

// Girdiyi oku
$temperature = floatval(trim(fgets(STDIN)));
$direction = trim(fgets(STDIN));

// TODO: Bir TemperatureConverter örneği oluşturun

// TODO: Yöne göre ("toF" veya "toC"), uygun dönüşümü gerçekleştirin
// - Eğer yön "toF" ise, Fahrenheit'a dönüştürün ve "°F" birimini kullanın
// - Eğer yön "toC" ise, Celsius'a dönüştürün ve "°C" birimini kullanın

// TODO: Doğru birim sembolü ile formatResult() kullanarak biçimlendirilmiş sonucu yazdırın

?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi