namespace
sözcüğü ve __NAMESPACE__
sabiti
(PHP 5 >= 5.3.0, PHP 7)
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 devingen olarak oluşturulan
isimler için kullanışlıdır.
Örnek 3 - Devingen 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 duruk "yöntem"
// yöntemini çağırır
$a = new namespace\alt\isim(); // Projem\alt\isim sınıfını örnekler
$b = namespace\SABİT; // Projem\SABİT sabitinin değerini $b'ye atar
?>
Ö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 duruk "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
?>