Müzakirə

PHP Typed Properties

Başladan IronPacket · 26 iyl 2026 01:00 · 5 Baxış · 0 Cavablar
Mövzunu Açan #0
Typed properties, PHP 7.4 ile birlikte tanıtılan bir özellik olarak, sınıf özelliklerinin türlerini belirlemenize olanak tanır. Bu özellik, daha iyi hata ayıklama, kodun okunabilirliğini artırma ve bir nesnenin durumu hakkında daha fazla bilgi sahibi olma gibi avantajlar sunar. PHP’nin dinamik yapısına bir adım daha ekleyerek, geliştiricilere daha güvenilir bir kod yazma olanağı tanır.

Temel Kullanım

Typed properties kullanmak için, sınıf tanımında özelliklerin önüne tür belirleyici eklemeniz yeterlidir. Örneğin:

[class=php]
class User {
public string $name;
public int $age;

public function [b]construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}
[/class]

Bu örnekte, name ve age özellikleri sırasıyla string ve int türünde tanımlanmıştır. Bu sayede, bu özelliklere atanan değerlerin türleri kontrol edilir; yanlış türde bir değer atandığında bir hata fırlatılır.

Özelliklerin Başlatılması

Typed properties, tanımlandıktan sonra hemen başlatılmak zorundadır. Aksi takdirde, bir Error nesnesi fırlatılır. Ancak, özellikler için varsayılan değerler belirlemek mümkündür:

[class=php]
class Product {
public string $name = "Default Product";
public float $price = 0.0;
}
[/class]

Nullable Türler

Bazen bir özelliğin değeri null olabilir. Bunun için, tür tanımına ? işareti eklenir. Örneğin, bir kullanıcının doğum tarihi opsiyonel olabilir:

[class=php]
class User {
public ?string $birthDate;

public function [/b]construct(?string $birthDate = null) {
$this->birthDate = $birthDate;
}
}
[/class]

Typed properties, PHP geliştiricilerine daha fazla kontrol ve doğrulama olanağı sunarak, hataların önlenmesine ve yazılımcının kodunu daha anlaşılır hale getirmesine yardımcı olur. Özellikle büyük projelerde, bu tür özelliklerin kullanımı, bakım ve geliştirme süreçlerini kolaylaştırmaktadır. PHP'nin bu yeni özelliklerini kullanarak, daha sağlam ve sürdürülebilir uygulamalar geliştirmek mümkündür.

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi