Definir espacios de nombres
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Aunque cualquier código de PHP válido puede estar contenido dentro de un espacio de nombres, solamente se ven
afectados por espacios de nombres los siguientes tipos de código: clases (incluyendo abstractas y traits), interfaces, funciones y constantes.
Los espacios de nombres se declaran utilizando la palabra reservada namespace
.
Un fichero que contenga un espacio de nombres debe declararlo al inicio
del mismo, antes que cualquier otro código, con una excepción: la
palabra reservada declare.
Ejemplo #1 Declarar un único espacio de nombres
<?php
namespace MiProyecto;
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
?>
La única construcción de código permitida antes de la declaración de un espacio de nombres es la
sentencia
declare
para declarar la codificación de un fichero fuente. Además,
todo lo que no sea código de PHP no puede preceder a la declaración del espacio de nombres, incluyendo espacios en blanco extra:
Ejemplo #2 Declarar un único espacio de nombres
<html>
<?php
namespace MiProyecto; // error fatal - el espacio de nombres debe ser la primera sentencia del script
?>
También, a diferencia de otras construcciones de PHP, se puede definir el mismo espacio de nombres
en varios ficheros, permitiendo la separación del contenido de un espacio de nombres a través del sistema de ficheros.