Återgå till globalt utrymme
Användning av namnrymder: återfall till det globala utrymmet för funktioner och konstanter
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Inom en namnrymd, när PHP stöter på ett okvalificerat namn i en klassnamn, funktions- eller konstantkontext, löses dessa med olika prioriteter. Klassnamn löses alltid till det aktuella namnrymdsnamnet. För att komma åt interna eller icke-namnrymdade användarklasser måste man därför referera till dem med deras fullständiga namn som i:
Exempel #1 Åtkomst till globala klasser inom en namnrymd
<?php namespace A\B\C; class Exception extends \Exception {} $a = new Exception('hej'); // $a är ett objekt av klassen A\B\C\Exception $b = new \Exception('hej'); // $b är ett objekt av klassen Exception $c = new ArrayObject; // fatal error, klassen A\B\C\ArrayObject hittades inte ?>
För funktioner och konstanter kommer PHP att falla tillbaka på globala funktioner eller konstanter om en namnrymdsfunktion eller -konstant inte existerar.
Exempel #2 Återfall till globala funktioner/konstanter inom en namnrymd
<?php namespace A\B\C; const E_ERROR = 45; function strlen($str) { return \strlen($str) - 1; } echo E_ERROR, "\n"; // skriver ut "45" echo INI_ALL, "\n"; // skriver ut "7" - faller tillbaka till globala INI_ALL echo strlen('hej'), "\n"; // skriver ut "1" if (is_array('hej')) { // skriver ut "är inte en array" echo "är en array\n"; } else { echo "är inte en array\n"; } ?>
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.namespaces.fallback.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/