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.