Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

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

XxZeMaHSeRxX

“.”
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Paylaşım
TM Üye
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)

Geri
Üst