(PHP 5 >= 5.3.0, PHP 7)
PHP'nin isim alanları gerçeklenimi bir programlama dili olarak PHP'nin kendi devingen doğasından etkilenir. Örnek olarak aşağıdaki kodu isim alanlı koda dönüştürmek istersek:
Örnek 1 - Devingen olarak erişilen elemanlar
örnek1.php:
<?php
class sınıfadı
{
function __construct()
{
echo __METHOD__,"\n";
}
}
function işlevadı()
{
echo __FUNCTION__,"\n";
}
const sabitadı = "küresel";
$a = 'sınıfadı';
$obj = new $a; // sınıfadı::__construct basar
$b = 'işlevadı';
$b(); // işlevadı basar
echo constant('sabitadı'), "\n"; // küresel basar
?>
Örnek 2 - Devingen olarak erişilen isim alanlı elemanlar
<?php
namespace isimalanıadı;
class sınıfadı
{
function __construct()
{
echo __METHOD__,"\n";
}
}
function işlevadı()
{
echo __FUNCTION__,"\n";
}
const sabitadı = "isimalanlı";
/* çift tırnakları kullanacaksanız, "\\isimalanıadı\\sınıfadı"
biçiminde olmalıdır */
$a = '\isimalanıadı\sınıfadı';
$obj = new $a; // isimalanıadı\sınıfadı::__construct basar
$a = 'isimalanıadı\sınıfadı';
$obj = new $a; // bu da isimalanıadı\sınıfadı::__construct basar
$b = 'isimalanıadı\işlevadı';
$b(); // isimalanıadı\işlevadı basar
$b = '\isimalanıadı\işlevadı';
$b(); //bu da isimalanıadı\işlevadı basan
echo constant('\isimalanıadı\sabitadı'), "\n"; // isimalanlı basar
echo constant('isimalanıadı\sabitadı'), "\n"; // bu da isimalanlı basar
?>
SSS arasındaki Dizgelerdeki isim alanı adlarının öncelenmesi konusuna da bakmayı unutmayın.