Namnrymder

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Definiera namnrymder

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Även om vilken giltig PHP-kod som helst kan ingå i en namnrymd, är det endast följande typer av kod som påverkas av namnrymder: klasser (inklusive abstrakta klasser och traits), gränssnitt, funktioner och konstanter.

Namnrymder deklareras med hjälp av nyckelordet namespace. En fil som innehåller en namnrymd måste deklarera namnrymden högst upp i filen före någon annan kod - med ett undantag: nyckelordet declare.

Exempel #1 Deklarera en enskild namnrymd

<?php
namespace MyProject;

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

?>

Notering: Fullständigt kvalificerade namn (dvs. namn som börjar med ett omvänt snedstreck) är inte tillåtna i namnrymdsdeklarationer, eftersom sådana konstruktioner tolkas som relativa namnrymdsuttryck.

Den enda kodkonstruktion som är tillåten före en namnrymdsdeklaration är declare-satsen, för att definiera kodning av en källfil. Dessutom får ingen icke-PHP-kod förekomma före en namnrymdsdeklaration, inklusive extra blanksteg:

Exempel #2 Deklarera en enskild namnrymd

<html>
<?php
namespace MyProject; // fatal error - namespace måste vara det första uttalandet i skriptet
?>

Dessutom, till skillnad från någon annan PHP-konstruktion, kan samma namnrymd definieras i flera filer, vilket möjliggör uppdelning av en namnrymds innehåll över filsystemet.


Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.namespaces.definition.php
PHP
Språkreferens
Språkreferens#Namnrymder


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/