PHP OOP - Özellikler
PHP - Özellikler nedir?
PHP yalnızca tekli kalıtımı destekler: bir alt sınıf yalnızca tek bir ebeveynden miras alabilir.
Peki ya bir sınıfın birden fazla davranışı miras alması gerekiyorsa? OOP özellikleri bu sorunu çözer.
Özellikler, birden çok sınıfta kullanılabilecek yöntemleri bildirmek için kullanılır. Nitelikler, birden çok sınıfta kullanılabilecek yöntemlere ve soyut yöntemlere sahip olabilir ve yöntemler herhangi bir erişim değiştiricisine (genel, özel veya korumalı) sahip olabilir.
Özellikler, trait
anahtar kelime ile bildirilir:
Sözdizimi
<?php
trait TraitName {
// some code...
}
?>
Bir sınıfta bir özelliği kullanmak için
use
anahtar kelimeyi kullanın:
Sözdizimi
<?php
class MyClass {
use TraitName;
}
?>
Bir örneğe bakalım:
Örnek
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
class Welcome {
use
message1;
}
$obj = new Welcome();
$obj->msg1();
?>
Örnek Açıklama
Burada bir özelliği ilan ediyoruz: mesaj1. Ardından bir sınıf oluşturuyoruz: Hoş Geldiniz. Sınıf, özelliği kullanır ve özellikteki tüm yöntemler sınıfta kullanılabilir olacaktır.
Diğer sınıfların msg1() işlevini kullanması gerekiyorsa, bu sınıflarda sadece message1 özelliğini kullanın. Bu, kod tekrarını azaltır, çünkü aynı yöntemi tekrar tekrar açıklamaya gerek yoktur.
PHP - Birden Çok Özellik Kullanma
Başka bir örneğe bakalım:
Örnek
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
trait message2 {
public function msg2()
{
echo "OOP reduces code duplication!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 =
new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
Örnek Açıklama
Burada iki özelliği ilan ediyoruz: mesaj1 ve mesaj2. Ardından iki sınıf oluşturuyoruz: Welcome ve Welcome2. Birinci sınıf (Hoş Geldiniz) mesaj1 özelliğini kullanır ve ikinci sınıf (Hoş Geldiniz2) hem mesaj1 hem de mesaj2 özelliklerini kullanır (birden çok özellik virgülle ayrılır).