Resumen de los espacios de nombres

(PHP 5 >= 5.3.0, PHP 7)

¿Qué son los espacios de nombres? En su definición más aceptada, los espacios de nombres son una manera de encapsular elementos. Se pueden ver como un concepto abstracto en muchos aspectos. Por ejemplo, en cualquier sistema operativo, los directorios sirven para agrupar ficheros relacionados, actuando así como espacios de nombres para los ficheros que contienen. Como ejemplo, el fichero foo.txt puede existir en los directorios /home/greg y /home/otro, pero no pueden coexistir dos copias de foo.txt en el mismo directorio. Además, para acceder al fichero foo.txt fuera del directorio /home/greg, se debe anteponer el nombre del directorio al nombre del fichero, empleando el separador de directorios para así obtener /home/greg/foo.txt. Este mismo principio se extiende a los espacios de nombres en el mundo de la programación.

Versión Descripción
7.0.0 Añadidas las Declaraciones de use en grupo.

En el mundo de PHP, los espacios de nombres están diseñados para solucionar dos problemas con los que se encuentran los autores de bibliotecas y de aplicaciones al crear elementos de código reusable, tales como clases o funciones:

  1. El conflicto de nombres entre el código que se crea y las clases/funciones/constantes internas de PHP o las clases/funciones/constantes de terceros.
  2. La capacidad de apodar (o abreviar) Nombres_Extra_Largos diseñada para aliviar el primer problema, mejorando la legibilidad del código fuente.

Los espacios de nombres de PHP proporcionan una manera para agrupar clases, interfaces, funciones y constantes relacionadas. Un ejemplo de la sintaxis de los espacios de nombres de PHP:

Ejemplo #1 Ejemplo de sintaxis de espacios de nombres

<?php
namespace mi\nombre// véase la sección "Definir espacios de nombres"

class MiClase {}
function 
mifunción() {}
const 
MICONSTANTE 1;

$a = new MiClase;
$c = new \mi\nombre\MiClase// véase la sección "Espacio global"

$a strlen('hola'); // véase la sección "Utilizar espacios de nombres: una
                     // alternativa a funciones/constantes globales"

$d = namespace\MICONSTANTE// véase la sección "El operador namespace y
                            // la constante __NAMESPACE__"
$d __NAMESPACE__ '\MICONSTANTE';
echo 
constant($d); // véase la sección "Espacios de nombres y características dinámicas del lenguaje"
?>

Nota:

Los nombres de los espacios de nombres PHP y php, y los nombres compuestos a partir de estos (como PHP\Classes) están reservados para el uso interno del lenguaje y no deben utilizarse en el código del espacio del usuario.