"Union Types" özelliği, PHP 8.0 sürümünde eklenmiştir ve bir değişkenin veya fonksiyonun döndürdüğü değerin, belirli bir tipten oluşan bir küme olmasını ifade eder. Örneğin, aşağıdaki örnekte, "getUserName" fonksiyonu, int veya string tipte bir parametre alır ve string veya null tipte bir değer döndürür:
function getUserName(int|string $id): string|null {
// Fonksiyon içeriği
}
Bu örnekte gösterildiği gibi, Union Types, "|" (pipe) işaretiyle ayrılmış tiplere denk gelir. Örnekte gösterildiği gibi, bir değişkenin veya fonksiyonun döndürdüğü değerin birden fazla tipte olması durumunda, tüm bu tipler "|" işaretiyle ayrılarak belirtilir.
Union Types, sadece değişkenler ve fonksiyonlar için kullanılabilir ve sınıflar veya nesneler için geçerli değildir. Ayrıca, Union Types sadece "scalar" (skaler) tipleri (int, float, string, bool gibi) ve "null" tipini destekler. Dizi ve obje gibi diğer tipler Union Types içinde belirtilemez.
Union Types, PHP dilinde tip güvenliğini arttırır ve kodun anlaşılırlığını artırır. Örneğin, aşağıdaki örnekte gösterildiği gibi, bir değişkenin tipe uygun bir değer atanmasını garantilemek için kullanılabilir:
function setUserName(string $name): void {
// $name değişkeni, string tipte bir değer alır ve hiçbir değer döndürmez
}
$userName = 'John';
setUserName($userName); // İşlemler normal şekilde yürütülür
$userAge = 30;
setUserName($userAge); // Hata verir, çünkü $userAge değişkeni int tipte bir değerdir
Daha fazla bilgi için, PHP Dökümantasyonlarının "Union Types" sayfasına göz atabilirsiniz.