• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

namespace sözcüğü ve __NAMESPACE__ sabiti

Konuyu Okuyan Kişiler (0)

delete38

webmaster.tc
Katılım
7 Ara 2012
Mesajlar
27
Beğeniler
0
#1
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:
<?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:
<?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:
<?php
namespace Projem;

use fan\fin as fon;  // "İsim alanlarının kullanımı: ithal/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:
<?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
?>