__TRAIT__
sihirli sabiti, bulunduğu trait'in adını içerir. Bu sabit, trait'lerin içinde kullanılır ve belirli bir trait'in adına programatik olarak erişmek istendiğinde kullanılır. İşte __TRAIT__
sabitinin kullanımına dair bir örnek:
trait ExampleTrait {
public function showTraitName() {
echo "Bu trait'in adı: " . __TRAIT__;
}
}
class ExampleClass {
use ExampleTrait;
}
$obj = new ExampleClass();
$obj->showTraitName();
?>
Bu örnekte, __TRAIT__
sabiti, ExampleTrait
adlı trait'in adını içerir. Trait içinde bu sabiti kullanarak, o trait'in adına erişebilirsiniz.
Trait'ler, sınıflar arasında özellik ve metodların paylaşılmasını sağlar. __TRAIT__
sabiti, bu trait'in adına dinamik olarak erişmek için kullanılabilir. Ancak, sadece trait içinde kullanılabilir ve sınıf içinde doğrudan kullanıldığında tanımsız kalır.
trait MyTrait {
public function getTraitName() {
return __TRAIT__;
}
}
class MyClass {
use MyTrait;
}
$obj = new MyClass();
echo $obj->getTraitName(); // Bu kod hata verir. __TRAIT__ sadece trait içinde kullanılabilir.
?>
Yukarıdaki örnekte, __TRAIT__
sabiti sadece MyTrait
trait'inin içinde kullanılabildiği için MyClass
sınıfı içinde doğrudan kullanıldığında bir hata alırsınız.