Definición de los espacios de nombres

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Aunque el código PHP válido puede estar contenido en un espacio de nombres, solo los siguientes tipos de código pueden ser afectados por los espacios de nombres: las clases (incluyendo las abstractas y los traits), las interfaces, las funciones y las constantes.

Los espacios de nombres se declaran con la palabra clave namespace. Un fichero que contiene un espacio de nombres debe declarar el espacio al principio del fichero, antes de cualquier otro código, con una sola excepción: la palabra clave declare.

Ejemplo #1 Declaración de un espacio de nombres

<?php
namespace MiProyecto;

const
CONECTAR_OK = 1;
class
Conexión { /* ... */ }
function
conectar() { /* ... */ }

?>

Nota: Los nombres completamente calificados (es decir, los nombres que comienzan con un antislash) no están autorizados en las declaraciones de espacios de nombres, ya que tales construcciones se interpretan como expresiones de espacio de nombres relativo.

El único elemento autorizado antes de la declaración de espacio de nombres es la instrucción declare, para definir la codificación del fichero fuente. Además, ningún código no-PHP puede preceder la declaración de espacio de nombres, incluyendo espacios:

Ejemplo #2 Error de declaración de un espacio de nombres

<html>
<?php
namespace MiProyecto; // error fatal - el espacio de nombres debe ser la primera sentencia del script
?>

Además, a diferencia de otras estructuras PHP, el mismo espacio de nombres puede ser definido en varios ficheros, lo que permite dividir el contenido de un espacio de nombres en varios ficheros.