(PHP 5 >= 5.3.0)
También se pueden declarar múltiples espacios de nombres en el mismo archivo. Hay dos sintaxis permitidas.
Ejemplo #1 Declarar múltiples espacios de nombres, sintaxis de combinación simple
<?php
namespace MiProyecto;
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
namespace OtroProyecto;
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
?>
No se recomienda esta sintaxis para combinar espacios de nombres en un único archivo. En su lugar se recomienda usar la sintaxis de llaves alternativa.
Ejemplo #2 Declarar múltiples espacios de nombres, sintaxis de llaves
<?php
namespace MiProyecto {
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
}
namespace OtroProyecto {
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
}
?>
Se desaconseja encarecidamente, como práctica de código, el combinar múltiples espacios de nombres en el mismo archivo. El caso de uso principal es combinar múltiples scripts de PHP en el mismo archivo.
Combinar código global que no es de espacio de nombres con código que sí lo es, sólo está soportado mediante la sintaxis de llaves. El código global debería estar encerrado en una declaración de espacio de nombres sin nombre de espacio de nombres:
Ejemplo #3 Declarar múltiples espacios de nombres y código que no es de espacio de nombres
<?php
namespace MiProyecto {
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
}
namespace { // código global
session_start();
$a = MiProyecto\conectar();
echo MiProyecto\Conexión::iniciar();
}
?>
No puuede existir código de PHP fuera de las llaves del espacio de nombres excepto para una sentencia de apertura declare.
Ejemplo #4 Declarar múltiples espacios de nombres y código que no es de espacio de nombres
<?php
declare(encoding='UTF-8');
namespace MiProyecto {
const CONECTAR_OK = 1;
class Conexión { /* ... */ }
function conectar() { /* ... */ }
}
namespace { // código global
session_start();
$a = MiProyecto\conectar();
echo MiProyecto\Conexión::iniciar();
}
?>