namespace
sözcüğü ve __NAMESPACE__
sabiti (PHP 5 >= 5.3.0, PHP 7, PHP 8)
PHP, geçerli isim alanı içindeki elemanlara mutlak olarak iki yolla erişimi destekler: sihirli __NAMESPACE__
sabiti ve namespace
anahtar sözcüğü.
__NAMESPACE__
sabitinin değeri içinde bulunulan isim alanının adını içeren bir dizgedir. Küresel alandaki isim alansız kod için sabitin değeri boş dizgedir.
Örnek 1 - İsim alanlı kod, __NAMESPACE__ örneği
<?php
namespace Projem;
echo '"', __NAMESPACE__, '"'; // "Projem" basar
?>
Örnek 2 - Küresel kod, __NAMESPACE__ örneği
<?php
echo '"', __NAMESPACE__, '"'; // "" basar
?>
__NAMESPACE__
sabiti dinamik olarak oluşturulan isimler için kullanışlıdır. Örnek 3 - Dinamik isim oluşturmak için __NAMESPACE__ kullanımı
<?php
namespace Projem;
function get($sınıfadı)
{
$a = __NAMESPACE__ . '\\' . $sınıfadı;
return new $a;
}
?>
namespace
sözcüğü, geçerli isim alanından veya bir alt isim alanından doğrudan doğruya bir eleman isteği yaparken kullanılabilir. Sınıflardaki self
işlecinin isim alanlarındaki karşılığıdır.
Örnek 4 - Bir isim alanı içinde namespace
işleci
<?php
namespace Projem;
use fan\fin as fon; // bak: "İsim alanlarının kullanımı: İthal/Rumuz"
fin\fon(); // Projem\fin\fon() işlevini çağırır
namespace\fin\fon(); // Projem\fin\fon() işlevini çağırır
namespace\işlev(); // Projem\işlev() işlevini çağırır
namespace\alt\işlev(); // Projem\alt\işlev() işlevini çağırır
namespace\isim::yöntem(); // Projem\isim sınıfının statik "yöntem"
Örnek 5 - Küresel kod içinde namespace
işleci
<?php
namespace\işlev(); // işlev() işlevini çağırır
namespace\alt\işlev(); // alt\işlev() işlevini çağırır
namespace\isim::yöntem(); // isim sınıfının statik "yöntem" yöntemini çağırır
$a = new namespace\alt\isim(); // alt\isim sınıfını örnekler
$b = namespace\SABİT; // SABİT sabitinin değerini $b'ye atar
?>