(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Embora qualquer código PHP válido possa estar contido em um namespace, apenas os seguintes tipos de código são afetados por namespaces: classes (incluindo abstratas, traits e enumerações), interfaces, funções e constantes.
Namespaces são declarados usando a palavra-chave namespace.
Um arquivo contendo um namespace deve declarar o namespace
no início do arquivo antes de qualquer outro código - com uma exceção: a
palavra-chave declare.
Exemplo #1 Declarando um único namespace
<?php
namespace MeuProjeto;
const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
?>A única construção de código permitida antes de uma declaração de namespace é a declaraçãoNota: Nomes totalmente qualificados (ou seja, nomes que começam com uma barra invertida) não são permitidos em declarações de namespace, por serem construções interpretadas como expressões de namespace relativos.
declare, para definir a codificação de um arquivo-fonte. Além disso,
nenhum código não-PHP pode preceder uma declaração de namespace, incluindo espaço em branco extra:
Exemplo #2 Declarando um único namespace
<html>
<?php
namespace MeuProjeto; // erro fatal - namespace precisa ser a primeira declaração no script
?>Além disso, ao contrário de qualquer outra construção do PHP, o mesmo namespace pode ser definido em vários arquivos, permitindo a divisão do conteúdo de um namespace no sistema de arquivos.