(PHP 5 >= 5.3.0, PHP 7, PHP 8)
La implementación de los espacios de nombres de PHP está influenciada por su naturaleza dinámica de lenguaje de programación. Por lo tanto, para convertir el código como el del ejemplo siguiente, en un espacio de nombres:
Ejemplo #1 Acceso dinámico a los elementos
example1.php:
<?php
class nombre_clase
{
function __construct()
{
echo __METHOD__,"\n";
}
}
function nombre_func()
{
echo __FUNCTION__,"\n";
}
const nombre_const = "global";
$a = 'nombre_clase';
$obj = new $a; // imprime nombre_clase::__construct
$b = 'nombre_func';
$b(); // imprime nombre_func
echo constant('nombre_const'), "\n"; // imprime global
?>
Ejemplo #2 Acceso dinámico a los espacios de nombres
<?php
namespace nombre_espacio_de_nombres;
class nombre_clase
{
function __construct()
{
echo __METHOD__,"\n";
}
}
function nombre_func()
{
echo __FUNCTION__,"\n";
}
const nombre_const = "de espacio de nombres";
/* observe que si se emplean comillas dobles, se debe usar "\\nombre_espacio_de_nombres\\nombre_clase" */
$a = '\nombre_espacio_de_nombres\nombre_clase';
$obj = new $a; // imprime nombre_espacio_de_nombres\nombre_clase::__construct
$a = 'nombre_espacio_de_nombres\nombre_clase';
$obj = new $a; // también imprime nombre_espacio_de_nombres\nombre_clase::__construct
$b = 'nombre_espacio_de_nombres\nombre_func';
$b(); // imprime nombre_espacio_de_nombres\nombre_func
$b = '\nombre_espacio_de_nombres\nombre_func';
$b(); // también imprime nombre_espacio_de_nombres\nombre_func
echo constant('\nombre_espacio_de_nombres\nombre_const'), "\n"; // imprime de espacio de nombres
echo constant('nombre_espacio_de_nombres\nombre_const'), "\n"; // también imprime de espacio de nombres
?>
Se recomienda leer la nota sobre la protección de los espacios de nombres en las cadenas.