El comando namespace y la constante __NAMESPACE__
  
  (PHP 5 >= 5.3.0, PHP 7, PHP 8)
  
   PHP admite dos medios para acceder de manera abstracta a los elementos
   en el espacio de nombres actual, a saber, la constante mágica
   __NAMESPACE__ y el comando namespace.
  
  
   El valor de __NAMESPACE__ es una cadena que contiene el nombre
   del espacio de nombres actual. En el espacio global, sin nombre, contiene
   una cadena vacía.
   
    Ejemplo #1 Ejemplo con __NAMESPACE__, en un código con espacio de nombres
    
     <?php
namespace MonProjet;
echo '"', __NAMESPACE__, '"'; // muestra "MonProjet"
?>
     
    
   
    Ejemplo #2 Ejemplo con __NAMESPACE__, en un código con espacio de nombres global
    
     <?php
echo '"', __NAMESPACE__, '"'; // muestra ""
?>
     
    
   La constante 
__NAMESPACE__ es útil para construir
   dinámicamente nombres, como:
   
    Ejemplo #3 Uso de __NAMESPACE__ para una construcción dinámica de nombres
    
     <?php
namespace MonProjet;
function get($classname)
{
    $a = __NAMESPACE__ . '\\' . $classname;
    return new $a;
}
?>
     
    
  
  
   El comando namespace también puede usarse para
   solicitar explícitamente un elemento del espacio de nombres actual, o de un
   subespacio. Es el equivalente para los espacios de nombres del operador
   self de las clases.
   
    Ejemplo #4 El operador namespace, en un espacio de nombres
    
     <?php
namespace MonProjet;
use blah\blah as mine; // Ver "Uso de espacios de nombres: alias e importación"
blah\mine(); // llama a la función MonProjet\blah\mine()
namespace\blah\mine(); // llama a la función MonProjet\blah\mine()
namespace\func(); // llama a la función MonProjet\func()
namespace\sub\func(); // llama a la función MonProjet\sub\func()
namespace\cname::method(); // llama al método estático "method" de la clase MonProjet\cname
$a = new namespace\sub\cname(); // instancia un objeto de la clase MonProjet\sub\cname
$b = namespace\CONSTANT; // asigna el valor de la constante MonProjet\CONSTANT a $b
?>
     
    
   
    Ejemplo #5 El operador namespace, en el espacio de nombres global
    
     <?php
namespace\func(); // llama a la función func()
namespace\sub\func(); // llama a la función sub\func()
namespace\cname::method(); // llama al método estático "method" de la clase cname
$a = new namespace\sub\cname(); // instancia un objeto de la clase sub\cname
$b = namespace\CONSTANT; // asigna el valor de la constante CONSTANT a $b
?>