PHP.nl

Defining namespaces

Het definiëren van namespaces

Hoewel elke geldige PHP-code binnen een namespace kan worden geplaatst, worden alleen de volgende types code beïnvloed door namespaces: klassen (inclusief abstracte klassen, traits en enums), interfaces, functies en constanten.

Namespaces worden gedeclareerd met behulp van het namespace sleutelwoord. Een bestand dat een namespace bevat, moet de namespace aan het begin van het bestand declareren, vóór enige andere code - met één uitzondering: de declare instructie.

De enige codeconstructie die is toegestaan vóór een namespace-declaratie is de declare instructie, voor het definiëren van de codering van een bronbestand. Bovendien mag er geen niet-PHP-code voorafgaan aan een namespace-declaratie, inclusief extra witruimte:

namespaceVoorbeeld: Een enkele namespace declareren

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }

?>

Opmerking: > Volledig gekwalificeerde namen (d.w.z. namen die beginnen met een backslash) zijn niet toegestaan in namespace-declaraties, omdat dergelijke constructies worden geïnterpreteerd als relatieve namespace-expressies.

declareVoorbeeld: Een enkele namespace declareren

<html>
<?php
namespace MyProject; // fatale fout - namespace moet de eerste instructie in het script zijn
?>

Bovendien, in tegenstelling tot andere PHP-constructies, kan dezelfde namespace in meerdere bestanden worden gedefinieerd, waardoor het mogelijk is om de inhoud van een namespace over het bestandssysteem te splitsen.

Documentatie