__NAMESPACE__
sihirli sabiti, bulunduğu dosyanın namespace'ini içerir. Bu sabit, bir dosyanın hangi namespace içinde olduğunu belirlemek veya namespace ile ilgili dinamik işlemler yapmak için kullanılır. İşte __NAMESPACE__
sabitinin kullanımına dair bir örnek:
namespace ExampleNamespace;
echo "Bu dosyanın namespace'i: " . __NAMESPACE__;
?>
Bu örnekte, __NAMESPACE__
sabiti, ExampleNamespace
adlı namespace'in adını içerir. Namespace içinde bu sabiti kullanarak, o dosyanın namespace'ine erişebilirsiniz.
Pratik bir örnek olarak, namespace içindeki sınıflar arasında bağlantılar kurmak veya belirli bir namespace içindeki sınıfların dinamik olarak yüklenmesi için __NAMESPACE__
sabiti kullanılabilir. Örneğin:
namespace App;
class MyClass {
public function __construct() {
$className = __NAMESPACE__ . 'AnotherClass';
$obj = new $className();
$obj->doSomething();
}
}
namespace App;
class AnotherClass {
public function doSomething() {
echo "Merhaba, başka bir sınıftan çağrı yapıldı!";
}
}
$obj = new MyClass();
?>
Bu örnekte, MyClass
sınıfının yapıcı metodunda, __NAMESPACE__
sabiti kullanılarak, aynı namespace içinde yer alan AnotherClass
sınıfının adı oluşturulur ve yeni bir nesne oluşturularak kullanılır.