__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.
