ホームページ >バックエンド開発 >PHPチュートリアル >無限のマトリョーシカ人形、名前空間のネーミングパス
namespace
を学習した後は、名前空間の簡単な概要を次に示します。
1. 名前空間を使用する目的
PHPFunction
では、
Class、
Constant に同じ名前を付けることはできません。これら 3 つの名前が同じであるという問題を解決するために、名前空間が登場しました。したがって、名前空間は
クラス、関数、定数 (
const) にのみ影響します。
2. ネームスペースの使用形式
a. スペースに名前を付けることができます
<?php namespace space1;//namespace关键字+空间名 代码; ?>
b. 複数の名前も付けることができますスペースには同時に名前を付けることができます。
<?php namespace space1;//namespace关键字 +空间名 代码1; namespace space2; 代码2; namespace space3; 代码3; .......//代码1,代码2,代码3,可相同亦可不同 ....... ?>注: PHP ファイル内の場合、最初のスペースの定義は最初の行に配置する必要があります。ただし、すべてに例外があり、名前空間を宣言する前の唯一の正当なコードは、ソース ファイルのエンコーディングを定義するために使用される
declare ステートメントです。空白を含むすべての非 PHP コードは、名前空間宣言の前に現れてはなりません。たとえば、次のコードはエラーを報告します。
<html> <?php namespace space1; namespace space2; ?> </html>
3. ネームスペース アクセス
ネームスペース アクセスは次のように分類されます: 非修飾スペース アクセス,
制限されたスペースaccess、
完全修飾スペースアクセス。
a. 無制限のスペース アクセス
<?php namespace space3; function f1(){ echo "space3"; } namespace space3\space2;//其中"\"代表space2是space3的子空间,同理space3是space2的父空间。 function f1(){ echo "space2"; } namespace space3\space2\space1; function f1(){ echo "space1"; } f1();//对上面空间成员进行访问,输出结果为:space1 ?>
b. 制限付きスペース アクセス
<?php namespace space2\space1; function f1(){ echo "space1"; } namespace space2; function f1(){ echo "space2"; } f1();//此时输出的是 space2 space1\f1();//此时输出的是space1 ?>
c.完全修飾スペース アクセス
<?php namespace space3; function f1(){ echo "space3"; } namespace space2; function f1(){ echo "space2"; } namespace space1; function f1(){ echo "space1"; } f1();//对上面空间成员进行访问,输出结果为:space1 \space3\f1();//对space3进行访问,输出结果为:space3 \space2\f1();//对space2进行访问,输出结果为:space2 ?>
4.スペース メンバーの紹介
a.use スペース名\ スペースname [
as alias]: 指定されたスペースを現在のスペースに導入します。 as キーワードを使用して、導入されたスペースにエイリアスを付けることもできます。
b.use スペース名\スペース名\メンバー クラス [
as Alias]: 指定したスペースのメンバーを現在のスペースに導入します。スペース メンバーを導入する場合、クラスのみを導入できます。
5. いくつかのマイナーな状況
#ネームスペースが出現すると、スペース要素 (クラス、定数、関数) へのアクセスはそのスペースに制限されます。修飾されていないスペース アクセスが使用される場合、システムには次の解析ロジック (修飾名または完全修飾名) が適用されます。名前はパスに直接たどって正確に見つけてください)
##
<?php namespace space3; function f1(){ echo "space3"; } //当前所有访问如果使用非限定名称都代表访问当前空间内的元素 f1();//访问space3下f1()函数 //想要访问函数 define('PI',3.14);//space3下没有define()函数,全局函数有 //想要访问系统常量 echo PHP_VERSION; //space3下没有define()函数,全局函数有 //想要访问类 //错误方案 //$m=new Mysqli('localhost','root','root');//系统会提示类不存在 //正确方案 $m= new \Mysqli('localhost','root','root'); ?>
推奨: php チュートリアル
以上が無限のマトリョーシカ人形、名前空間のネーミングパスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。