Definiera flera namnrymder i samma fil
Definiera flera namnrymder i samma fil
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Flera namnrymder kan också deklareras i samma fil. Det finns två tillåtna syntaxer.
Exempel #1: Deklarera flera namnrymder, enkel kombinationssyntax
<?php namespace MyProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } namespace AnotherProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } ?>
Denna syntax rekommenderas inte för att kombinera namnrymder i en enda fil. Istället rekommenderas det att använda den alternativa syntaxen med klamrar.
Exempel #2: Deklarera flera namnrymder, syntax med klamrar
<?php namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace AnotherProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } ?>
Det avråds starkt från att kombinera flera namnrymder i samma fil som en kodningspraxis. Det primära användningsområdet är att kombinera flera PHP-skript i samma fil.
För att kombinera global, icke-namnrymd kod med namnrymd kod, stöds endast syntaxen med klamrar. Global kod bör inneslutas i ett namespace
-uttryck utan namnrymdsnamn som i:
Exempel #3: Deklarera flera namnrymder och icke-namnrymd kod
<?php namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // global kod session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>
Ingen PHP-kod får existera utanför namnrymdens klamrar förutom en inledande declare
-deklaration.
Exempel #4: Deklarera flera namnrymder och icke-namnrymd kod
<?php declare(encoding='UTF-8'); namespace MyProject { const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } } namespace { // global kod session_start(); $a = MyProject\connect(); echo MyProject\Connection::start(); } ?>
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.namespaces.definitionmultiple.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/