PHP 8 Birleşik Tipler (Union Types) ve Kullanım Alanları

XxZeMaHSeRxX

“.”
Katılım
2 Ara 2024
Konular
186
Mesajlar
1,979
Çözüm
8
Online süresi
5mo 13d
Reaksiyon Skoru
1,493
Altın Konu
1
Başarım Puanı
206
MmoLira
12,354
DevLira
36
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

1. Birleşik Tip (Union Type) Nedir?

PHP 8 ile birlikte gelen Union Types, bir değişkenin, parametrenin veya fonksiyonun dönüş değerinin birden fazla veri türünü (type) kabul edebilmesini sağlar.

Yani bir fonksiyonun sadece tek türde değil, birden fazla türde veriyle çalışabilmesini mümkün kılar.

Örnek:

Kod:
function topla(int|float $a, int|float $b): int|float {
    return $a + $b;
}

Yukarıdaki örnekte fonksiyon hem int hem de float türlerini kabul eder ve aynı türlerde bir sonuç döndürür.

2. PHP 8 Öncesi Durum

PHP 8’den önce aynı işlevi elde etmek için tür kontrolleri manuel yapılırdı:

Kod:
function topla($a, $b) {
    if (!is_int($a) && !is_float($a)) {
        throw new InvalidArgumentException('Sayı giriniz.');
    }
    if (!is_int($b) && !is_float($b)) {
        throw new InvalidArgumentException('Sayı giriniz.');
    }
    return $a + $b;
}


Bu yöntem hem daha uzun hem de hata yapmaya daha açıktı.

3. Temel Kullanım Biçimi

Birleşik tipler, dikey çizgi (|) sembolüyle tanımlanır.

Sözdizimi:

function fonksiyonAdi(Tip1|Tip2|Tip3 $parametre): Tip1|Tip2 {}

Örnek:

Kod:
function degerGetir(int|string $id): string {
    return "ID: $id";
}

echo degerGetir(42);       // "ID: 42"
echo degerGetir("abc123"); // "ID: abc123"

4. Geçerli ve Geçersiz Kullanımlar

Geçerli:

function islem(int|float $deger) { /* ... */ }
function getData(array|object $veri) { /* ... */ }

Geçersiz:

function hata(?int|null $id) {} // Hatalı - null zaten ?int içinde var
function ornek(void|int $x) {} // Hatalı - void birleşimlerde kullanılamaz

Not:
?int ifadesi aslında int|null’ün kısa yazımıdır.
Dolayısıyla int|null yerine ?int yazmak mümkündür, ama tersi geçerli değildir.​

5. Dönüş Tiplerinde Kullanım

Birleşik tipler sadece parametrelerde değil, dönüş türlerinde de kullanılabilir:

Kod:
function hesapla(float $a, float $b): int|float {
    $sonuc = $a * $b;
    return $sonuc < 1 ? (int)$sonuc : $sonuc;
}

Bu fonksiyon bazen int, bazen float döndürebilir.

6. Kullanım Alanları

Birleşik tipler özellikle şu durumlarda çok faydalıdır:
Kullanım Alanı​
Açıklama​
Örnek​
API Geliştirme
API fonksiyonları bazen sayı bazen string döndürebilir.​
`int​
Eski Kodlarla Uyum
Eski sistemlerde farklı türde veri gelebilir.​
`array​
Genel Yardımcı Fonksiyonlar
Tür esnekliği gereken durumlar.​
`int​
Nullable Değerler
Değer olmayabilir (null).​
`int​
 
Paylaşım için teşekkürler
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)