Namnrymde-nyckelord och NAMESPACE — Namnrymde-nyckelordet och NAMESPACE magiska konstant
Nyckelordet namespace och den magiska konstanten __NAMESPACE__
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
PHP stöder två sätt att abstrakt komma åt element inom den aktuella namnrymden: den magiska konstanten __NAMESPACE__ och nyckelordet namespace.
Värdet av __NAMESPACE__ är en sträng som innehåller det aktuella namnrymdsnamnet. I global, icke-namnrymdd kod innehåller den en tom sträng.
Exempel #1 Exempel på __NAMESPACE__, namnrymdd kod
<?php namespace MyProject; echo '"', __NAMESPACE__, '"'; // skriver ut "MyProject" ?>
Exempel #2 Exempel på __NAMESPACE__, global kod
<?php echo '"', __NAMESPACE__, '"'; // skriver ut "" ?>
Konstanten __NAMESPACE__ är användbar för att dynamiskt konstruera namn, till exempel:
Exempel #3 Använda __NAMESPACE__ för dynamisk namngivning
<?php namespace MyProject; function get($classname) { $a = __NAMESPACE__ . '\\' . $classname; return new $a; } ?>
Nyckelordet namespace kan användas för att uttryckligen begära ett element från den aktuella namnrymden eller en under-namnrymd. Det är namnrymdsekvivalenten till operatorn self för klasser.
Exempel #4 Användning av operatorn namespace inom en namnrymd
<?php namespace MyProject; use blah\blah as mine; // se "Using namespaces: Aliasing/Importing" blah\mine(); // anropar funktionen MyProject\blah\mine() namespace\blah\mine(); // anropar funktionen MyProject\blah\mine() namespace\func(); // anropar funktionen MyProject\func() namespace\sub\func(); // anropar funktionen MyProject\sub\func() namespace\cname::method(); // anropar den statiska metoden "method" i klassen MyProject\cname $a = new namespace\sub\cname(); // instansierar objekt av klassen MyProject\sub\cname $b = namespace\CONSTANT; // tilldelar värdet av konstanten MyProject\CONSTANT till $b ?>
Exempel #5 Användning av operatorn namespace i global kod
<?php namespace\func(); // anropar funktionen func() namespace\sub\func(); // anropar funktionen sub\func() namespace\cname::method(); // anropar den statiska metoden "method" i klassen cname $a = new namespace\sub\cname(); // instansierar objekt av klassen sub\cname $b = namespace\CONSTANT; // tilldelar värdet av konstanten CONSTANT till $b ?>
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.namespaces.nsconstants.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/