irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
PHP 8 serisi, yazılımcıların yıllardır beklediği birçok özelliği beraberinde getirdi. Artık daha az satırla daha güvenli ve hızlı uygulamalar geliştirmek mümkün. İşte en önemli yenilikler:
match, klasik switch ifadesinin daha güçlü ve kısa yazılan halidir. Değerleri doğrudan bir değişkene atayabilir, katı tip kontrolü (strict comparison) yapar ve break yazma zorunluluğunu ortadan kaldırır.
Bir fonksiyona parametre gönderirken sıralamaya uymak zorunda değilsiniz. Sadece parametre adını belirterek veri gönderebilirsiniz. Bu, özellikle çok fazla parametresi olan fonksiyonlarda okunabilirliği artırır.
Sınıf özelliklerini hem tanımlayıp hem de kurucu metot içinde atama yapma zahmetinden kurtulun. Tek satırda hem özelliği tanımlar hem de değerini atarsınız.
İç içe geçmiş nesnelerde bir özelliğin null olup olmadığını kontrol etmek için uzun if blokları yazmaya son. Eğer zincirdeki bir halka null ise, hata vermek yerine tüm ifade null döner.
PHP 8.x sürümleri, dili daha "kurumsal" ve "güvenli" bir hale getirdi. Özellikle match ifadesi ve nullsafe operator, kod yazma alışkanlıklarımızı kökten değiştirdi. Eğer hala eski sürümleri kullanıyorsanız, hem performans hem de güvenlik için projelerinizi 8.x sürümlerine yükseltmeniz hayati önem taşır.
1. Match İfadesi (Switch'in Modern Hali)
match, klasik switch ifadesinin daha güçlü ve kısa yazılan halidir. Değerleri doğrudan bir değişkene atayabilir, katı tip kontrolü (strict comparison) yapar ve break yazma zorunluluğunu ortadan kaldırır.
PHP:
<?php
$durum_kodu = 200;
$mesaj = match ($durum_kodu) {
200, 201 => 'İşlem Başarılı',
404 => 'Sayfa Bulunamadı',
500 => 'Sunucu Hatası',
default => 'Bilinmeyen Hata',
};
echo $mesaj; // Çıktı: İşlem Başarılı
?>
2. Named Arguments (İsimlendirilmiş Argümanlar)
Bir fonksiyona parametre gönderirken sıralamaya uymak zorunda değilsiniz. Sadece parametre adını belirterek veri gönderebilirsiniz. Bu, özellikle çok fazla parametresi olan fonksiyonlarda okunabilirliği artırır.
PHP:
// Eski yöntem: Sıralama önemliydi
// setcookie("user", "admin", time() + 3600, "/", "", true, true);
// PHP 8+: Sadece ihtiyacınız olanları isimlendirerek gönderin
setcookie(
name: "user",
value: "admin",
expires: time() + 3600,
httponly: true
);
?>
3. Constructor Property Promotion
Sınıf özelliklerini hem tanımlayıp hem de kurucu metot içinde atama yapma zahmetinden kurtulun. Tek satırda hem özelliği tanımlar hem de değerini atarsınız.
PHP:
// PHP 7.x öncesi: 3 kez yazmanız gerekiyordu
// PHP 8+: Tek satırda halledin
class Kullanici {
public function __construct(
public string $ad,
public string $eposta,
private int $yas = 18
) {}
}
$uye = new Kullanici("Can", "[email protected]");
echo $uye->ad;
?>
4. Nullsafe Operator (?->)
İç içe geçmiş nesnelerde bir özelliğin null olup olmadığını kontrol etmek için uzun if blokları yazmaya son. Eğer zincirdeki bir halka null ise, hata vermek yerine tüm ifade null döner.
PHP:
// Eski yöntem
$ulke = null;
if ($kullanici !== null) {
$profil = $kullanici->getProfil();
if ($profil !== null) {
$ulke = $profil->ulke;
}
}
// PHP 8+ Modern Yöntem
$ulke = $kullanici?->getProfil()?->ulke;
?>
PHP 8.x Yenilikleri Özet Tablosu
| Özellik | Açıklama | Avantaj |
|---|---|---|
| JIT (Just-In-Time) | Kodun makine diline derlenme şekli | CPU ağırlıklı işlemlerde %50+ performans artışı |
| Union Types | Birden fazla tip tanımlama (int|string) | Daha esnek veri doğrulama |
| str_contains() | Metin içinde arama yapan yeni fonksiyon | Artık strpos() karmaşasına gerek yok |
| ReadOnly Properties | Sadece bir kez atanabilen özellikler | Veri tutarlılığını garanti eder |
Sonuç
PHP 8.x sürümleri, dili daha "kurumsal" ve "güvenli" bir hale getirdi. Özellikle match ifadesi ve nullsafe operator, kod yazma alışkanlıklarımızı kökten değiştirdi. Eğer hala eski sürümleri kullanıyorsanız, hem performans hem de güvenlik için projelerinizi 8.x sürümlerine yükseltmeniz hayati önem taşır.