Tanım
PHP 7.4, nesne yönelimli programlama (OOP) açısından önemli bir geliştirme olan yazılan özellikleri (typed properties) tanıtmıştır. Yazılan özellikler, sınıf içindeki özelliklerin belirli bir veri tipine sahip olmasını zorunlu kılar. Bu özellik, kodun daha okunaklı ve hataların daha erken bir aşamada yakalanmasını sağlar. Özellikle PHP gibi dinamik bir dilde, veri tipinin belirli kalıplara uymadığı durumlarda ortaya çıkabilecek hataları minimize eder.
Yazılan Özelliklerin Kullanımı
Yazılan özellikler, sınıf içerisinde tanımlanırken belirli bir veri tipi belirtilerek kullanılabilir. Aşağıda, yazılan özelliklerin nasıl tanımlandığına dair bir örnek verilmiştir:
“`php
class User {
public string $name;
public int $age;
public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}
“`
Yukarıdaki örnekte, `User` sınıfında `name` ve `age` adında iki özellik bulunmaktadır. `name` özelliği bir `string` tipindeyken, `age` özelliği bir `int` tipindedir. Bu özelliklerin veri tipleri tanımlandığı için, uygun olmayan bir değerin atanması durumunda PHP bir hata fırlatacaktır.
Veri Tipleri
Yazılan özellikler ile kullanılabilecek veri türleri şunlardır:
– `int`
– `float`
– `string`
– `bool`
– `array`
– `object`
– `iterable`
– `callable`
– Karmaşık veri tipleri (örneğin, sınıf adları)
PHP 7.4, sınıf özelliklerinin veri tiplerinin yanı sıra `null` değerini de kabul etmektedir. Bir özelliğin `null` değerine sahip olabilmesi için veri tipinin sonuna `?` işareti eklenmesi yeterlidir:
“`php
class User {
public ?string $nickname = null;
}
“`
Bu durumda, `nickname` özelliği ya bir `string` değeri ya da `null` olabilir.
Önemli Noktalar
Yazılan özellikler, PHP’nin daha önceki sürümlerinde, sadece metod parametrelerinde ve dönüş değerlerinde kullanılabiliyordu. Ancak PHP 7.4 ile birlikte, özellikler üzerinde de bu kullanımın mümkün hale gelmesi, kod kalitesini artırmakta ve hata yakalamada daha etkin bir yol sunmaktadır. Özellikle büyük projelerde, geliştiricilerin hangi türde veriler ile çalıştığını daha iyi anlamalarına yardımcı olur.
Yazılan özellikler kullanıldığında, PHP uygulamalarında karışıklık olasılığı azalır ve geliştiricilere daha güçlü bir yapı sunar. Hatalar, kod çalıştırılmadan önce derleme anında yakalanabileceği için debugging süreçleri de kolaylaşır.
Örnek Senaryolar
Yazılan özelliklerin kullanımı, birçok farklı senaryoda faydalı olabilir. Bilgi tutma amacıyla veri türlerinin önem taşıdığı durumlarda, geliştiriciler sınıflarının içindeki verilerin ne türde olduğunu net bir şekilde belirleyebilirler. Örneğin, bir veritabanı uygulamasında kullanıcı özelliklerini tutmak için yazılan özellikler kullanımı, kullanıcıların yaşı ve ismi gibi verilerin türünü belirgin hale getirebilir.
“`php
class Product {
public string $title;
public float $price;
public function __construct(string $title, float $price) {
$this->title = $title;
$this->price = $price;
}
}
“`
Yukarıdaki `Product` sınıfında, bir ürünün başlığı ve fiyatı aynı şekilde yazılan özellikler ile tanımlanmıştır. Bu, program içerisinde ürünlerle ilgili işlemler yaparken hangi türde veri ile çalışıldığı bilgisini sağlar.
Dikkat Edilmesi Gerekenler
Yazılan özelliklerin kullanımı bazı sınırlamalara da sahiptir. Özelliklere atanan değerlerin, tanımlanan türle uyumlu olması gerekmektedir. Aksi takdirde, PHP çalıştırıldığında bir hata mesajı ile karşılaşılacaktır. Bu nedenle, yazılan özellikler belirli bir disiplin ve dikkat gerektirir.
Ayrıca, yazılan özellikler yalnızca görünür (public) özellikler için kullanılabilir. Protected veya private özelliklerde yazılan tipler devre dışı bırakılmıştır. Bu durum, özellikle içsel işleyişin gizliliği açısından önem taşımaktadır.
Sonuç
PHP 7.4 ile gelen yazılan özellikler, nesne yönelimli programlama yaklaşımına katkı sağlamakta ve yazılım geliştirmede tutarlılığı artırmaktadır. Geliştiricilerin kodlarını daha düzenli ve anlaşılır hale getirmelerine olanak tanırken, hata yakalama süreçlerini de kolaylaştırmaktadır. Yazılan özelliklerin doğru ve etkili bir şekilde kullanılması, yazılım projelerinde uzun vadede faydalar sağlamaktadır.