noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bodyguardd 1
Bodyguardd
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
romegames 1
romegames
Manastir2 1
Manastir2
lHezarfeNl 1
lHezarfeNl
kaptanmikro1 1
kaptanmikro1
Reklam vermek için turkmmo@gmail.com

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

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​
 

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

Geri
Üst