Espacios de Nombres
PHP Manual

Espacios de Nombres y características dinámicas del lenguaje

(PHP 5 >= 5.3.0)

La implementación de PHP de los espacios de nombres está influenciada por su naturaleza dinámica como lenguaje de programación. Así, para convertir código como el del siguiente ejemplo en código de espacios de nombres:

Ejemplo #1 Acceder dinámicamente a elementos

ejemplo1.php:

<?php
class nombreclase
{
    function 
__construct()
    {
        echo 
__METHOD__,"\n";
    }
}
function 
nombrefunc()
{
    echo 
__FUNCTION__,"\n";
}
const 
nombreconst "global";

$a 'nombreclase';
$obj = new $a// imprime nombreclase::__construct
$b 'nombrefunc';
$b(); // imprime nombrefunc
echo constant('nombreconst'), "\n"// imprime global
?>
Se debe usar el nombre completamente cualificado (nombre de clase con prefijo de espacio de nombres). Observe que ya que no hay diferencia entre un nombre cualificado y uno completamente cualificado dentro de un nombre de clase, función, o constante dinámicas, no es necesario la barra invertida inicial.

Ejemplo #2 Acceder dinámicamente a elementos de un espacio de nombres

<?php
namespace nombreespaciodenombres;
class 
nombreclase
{
    function 
__construct()
    {
        echo 
__METHOD__,"\n";
    }
}
function 
nombrefunc()
{
    echo 
__FUNCTION__,"\n";
}
const 
nombreconst "de espacio de nombres";

include 
'ejemplo1.php';

$a 'nombreclase';
$obj = new $a// imprime nombreclase::__construct
$b 'nombrefunc';
$b(); // imprime nombrefunc
echo constant('nombreconst'), "\n"// imprime global

/* observe que si se usan comillas dobles, se debe usar "\\nombreespaciodenombres\\nombreclase" */
$a '\nombreespaciodenombres\nombreclase';
$obj = new $a// imprime nombreespaciodenombres\nombreclase::__construct
$a 'nombreespaciodenombres\nombreclase';
$obj = new $a// también imprime nombreespaciodenombres\nombreclase::__construct
$b 'nombreespaciodenombres\nombrefunc';
$b(); // imprime nombreespaciodenombres\nombrefunc
$b '\nombreespaciodenombres\nombrefunc';
$b(); // también imprime nombreespaciodenombres\nombrefunc
echo constant('\nombreespaciodenombres\nombreconst'), "\n"// imprime de espacio de nombres
echo constant('nombreespaciodenombres\nombreconst'), "\n"// también imprime de espacio de nombres
?>

Asegúrese de leer la nota sobre escapar nombres de espacios de nombres en cadenas.


Espacios de Nombres
PHP Manual