Definiera flera namnrymder i samma fil: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== 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 === <pre> <?php namespace MyProject; const CONNECT_OK = 1; class Connection { →...: } function connect() { →...: } namespace AnotherProject; const CONNECT_OK = 1; class Connection { →...: } function connect() { →...: ...') |
(Ingen skillnad)
|
Nuvarande version från 19 augusti 2024 kl. 10.52
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/