(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Aunque el código PHP válido puede contenerse en un espacio de nombres, solo los siguientes tipos de código pueden verse afectados por los espacios de nombres: las clases (incluyendo las abstractas, los traits y los enums), las interfaces, las funciones y las constantes.
Los espacios de nombres se declaran con la palabra clave namespace
.
Un archivo que contiene un espacio de nombres debe declarar el espacio al principio
del archivo, 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 MonProjet;
const CONNEXION_OK = 1;
class Connexion { /* ... */ }
function connecte() { /* ... */ }
?>
El único elemento autorizado antes de la declaración de espacio de nombres es la instrucciónNota: 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.
declare
, para definir la codificación del archivo fuente. Además,
ningún código no-PHP puede preceder a la declaración de espacio de nombres, incluyendo
espacios:
Ejemplo #2 Error de declaración de un espacio de nombres
<html>
<?php
namespace MonProjet; // error fatal: el espacio de nombres debe ser el primer elemento del script
?>
Además, a diferencia de otras estructuras de PHP, el mismo espacio de nombres puede definirse en varios archivos, lo que permite dividir el contenido de un espacio de nombres en varios archivos.