PHP 7.4 Yazılan Özellikler (Typed Properties) ile ilgili örnek kodlar nelerdir?

Giriş

PHP 7.4, tip sistemini geliştirmek amacıyla birçok yeni özellik sunmuştur ve bu özelliklerden biri de “typed properties” yani “tiplendirilmiş özellikler”dir. Bu özellik, sınıf üyelerine belirli veri türleri atayarak daha katı bir tip kontrolü sağlar. Tiplendirilmiş özellikler, devre dışı bırakılmadıkça hataların erken aşamada tespit edilmesine yardımcı olur ve kodun okunabilirliğini artırır. Ayrıca, geliştiricilerin daha net bir şekilde niyetlerini ifade etmelerine olanak tanır.

Tiplendirilmiş Özelliklerin Tanıtımı

PHP’de tiplendirilmiş özellikler, bir sınıf içinde tanımlanan değişkenlerle birlikte kullanılmak üzere belirli bir veri türü belirtmeyi mümkün kılar. Bu, sınıf özelliklerinin ya da nesne özelliklerinin belirli bir türde olması gerektiği anlamına gelir. Örneğin, bir özelliği `string`, `int`, `float`, `bool`, `array`, `object`, `callable`, `iterable` gibi veri türlerini kullanarak tiplendirmek mümkündür.

Temel Kullanım

Aşağıda, tiplendirilmiş özelliklerin temel bir kullanım örneği bulunmaktadır.

“`php
class Person {
public string $name;
public int $age;

public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}

public function greet(): string {
return “Hello, my name is $this->name and I am $this->age years old.”;
}
}

$person = new Person(“John”, 30);
echo $person->greet();
“`

Yukarıdaki örnekte `Person` sınıfının `name` ve `age` adında iki tiplendirilmiş özelliği bulunmaktadır. `name` özelliği `string` türünde, `age` ise `int` türünde olarak tanımlanmıştır. `__construct` metodu, sınıf örneklemesi sırasında bu özelliklere değer atamak için kullanılır.

Hata Yönetimi

Tiplendirilmiş özellikler, yanlış türde veri atanması durumunda hata fırlatır. Aşağıdaki örnek, tip hatasının nasıl meydana geleceğini göstermektedir.

“`php
class Product {
public string $title;
public float $price;

public function __construct(string $title, float $price) {
$this->title = $title;
$this->price = $price;
}
}

$product = new Product(“Laptop”, 999.99);

// Aşağıdaki satır bir TypeError fırlatır
$product->price = “not a number”;
“`

Bu örnekte, `price` özelliğine bir `string` türünde değer atanması, `TypeError` hatasına sebep olacaktır. Bu durum, geliştiricinin hatayı hemen fark etmesine yardımcı olur.

Varsayılan Değerler

PHP 7.4 ile birlikte, tiplendirilmiş özellikler için varsayılan değerler de atanabilir. Aşağıdaki örnek, varsayılan değerlerin nasıl kullanılabileceğini göstermektedir.

“`php
class Car {
public string $brand;
public int $year = 2020; // Varsayılan değer

public function __construct(string $brand) {
$this->brand = $brand;
}

public function info(): string {
return “Brand: $this->brand, Year: $this->year”;
}
}

$car = new Car(“Toyota”);
echo $car->info();
“`

Bu örnekte, `year` özelliği için varsayılan bir değer olan `2020` atanmıştır. Sınıf oluşturulurken `year` değeri belirtilmediğinde varsayılan değer kullanılacaktır.

Nullable Properties

Tiplendirilmiş özellikler, `?` operatörü ile tiplendirilmiş özelliklerin `null` olabilmesine imkân tanır. Aşağıda, bu durumun nasıl uygulanacağını gösteren bir örnek bulunmaktadır.

“`php
class User {
public string $username;
public ?string $email; // Nullable tip

public function __construct(string $username, ?string $email = null) {
$this->username = $username;
$this->email = $email;
}

public function info(): string {
return “Username: $this->username, Email: ” . ($this->email ? $this->email : ‘Not provided’);
}
}

$user1 = new User(“Alice”);
$user2 = new User(“Bob”, “bob@example.com”);

echo $user1->info();
echo “\n”;
echo $user2->info();
“`

Bu örnekte, `email` özelliği `null` olabilen bir `string` türünde tanımlanmıştır. Kişi oluşturulurken `email` değeri sağlanmadığında, bu özellik `null` olarak saklanır.

Sonuç

PHP 7.4 ile birlikte gelen tiplendirilmiş özellikler, geliştiricilere daha katı bir tip sistemi sunarak uygulama geliştirmenin daha güvenli ve anlaşılır hale gelmesini sağlar. Özellikle büyük projelerde, kodun daha okunabilir ve bakımı daha kolay hale gelmesine katkı sağlar. Geliştiricilerin daha iyi bir hata ayıklama deneyimi yaşayabilmesi için önemli bir adım niteliğindedir. Bu özelliklerin kullanılması, yazılım geliştirme süreçlerinde iyi bir uygulama örneği olarak gösterilebilir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR