Definición de espacios de nombres
(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() { /* ... */ }
?>
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 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.