PHPでの名前空間の宣言と使用

无忌哥哥
リリース: 2023-04-01 21:26:02
オリジナル
1738 人が閲覧しました

#** 名前空間の宣言と使用

* 1. キーワードを使用します: namespace

* 2.php5.3

* 3. 名前空間以外は何もできませんbefore 宣言とコメント以外のコード、HTML も許可されません

* 4. 名前空間はデフォルトではグローバル位置から始まり、グローバル空間はルート ディレクトリと同様に \ で表されます

* 5. 現在のスクリプトで名前空間が宣言されている場合、システム関数を含むすべてのメンバーへのアクセスは名前空間を使用する必要があります

//1。名前空間を宣言します。

#//同じ名前のクラスを宣言したい場合、定数と関数は別の名前空間を宣言できます


//2 スクリプト内では複数の名前空間が許可されます

//名前空間の宣言 :two、参照には \tow\ を使用します

namespace one;
class Demo{public $name='Peter Zhu';}
const SITE='PHP中文网';
function add($a,$b){return $a+$b;}
ログイン後にコピー

//次に、クラス Demo、定数 SITE、および関数 add を宣言します。競合はありません

namespace two;
ログイン後にコピー

/ /これはわかると思いますが、これは非常に重要です。たとえば、同じ名前のファイルを異なるディレクトリに作成することは許可されています。//現在の名前空間が何であるかを確認してください。システムのプリセット定数を使用します: __NAMESPACE__

class Demo{public $name='朱老师';}
const  SITE = 'www.php.cn';
function add($a,$b){return $a+$b;}
ログイン後にコピー

/ /現在の名前空間を使用して現在のスペースのメンバーにアクセスすることもできます

//現在の名前空間を使用してクラス名を生成します

echo (new Demo)->name, &#39;<br>&#39;; //默认输出的是当前空间的内容
ログイン後にコピー

//グローバル スペースから開始する完全な名前空間名を使用できます\。これはルート ディレクトリから開始するのと同じです

//専門用語: 完全修飾名

echo &#39;当前命名空间是: &#39;,__NAMESPACE__,&#39;<br>&#39;;
ログイン後にコピー

//3. クロススペース アクセスを実現するにはどうすればよいですか?

//スペース 1 の Demo クラスの属性にアクセスしたい場合、どうすればよいでしょうか? -スペース アクセスは、ファイルへのクロスディレクトリ アクセスと同様に、完全なスペース パスを指定する必要があります

//たとえば、1 つのスペースでクラス Demo のメンバーにアクセスしたいとします

$className = __NAMESPACE__.&#39;\Demo&#39;;
echo (new $className)->name,&#39;<br>&#39;;
ログイン後にコピー

//4名前空間を宣言するスクリプトで、システムの事前定義メソッドにアクセスするにはどうすればよいですか?

//たとえば、単一文字の配列が宣言されます

echo (new \two\Demo)->name, &#39;<hr>&#39;;
ログイン後にコピー

//グローバルにアクセスするためにこれを述べました。スペース内のメンバーには \ を追加する必要があります。なぜここに追加しなくても大丈夫ですか?

// ユーザーが追加しない場合、最初にこの中で var_dump() 関数が検索されるためです。 space.

//見つからない場合は、グローバル空間で検索するため、エラーは報告されません。ただし、var_dump() 関数も作成します。現在の 2 つのスペースでは、現在のスペース内のユーザー定義の var_dump() のみが実行されます。同じ名前のシステム関数は呼び出されません。

echo &#39;one空间的类成员:&#39;,(new \one\Demo)->name,&#39;<br>&#39;;
ログイン後にコピー

//同等の呼び出し構文:

$welcome = &#39;php中文网欢迎您&#39;;
\print_r($welcome); echo &#39;<br>&#39;;
print($welcome); echo &#39;<hr>&#39;;
ログイン後にコピー

//注: この print_r() は、システムの組み込み print_r() とは何の関係もありません。名前が同じであるだけです。

// ちょうど、長江道路が上海、合肥にも長江道路がありますが、名前が同じであることを除けば、これら 2 つの道路には何の関係もありません

//長江道路、上海市宝山区

// Changjiang Road, Luyang District, Hefei City

//これが同じ道だと思う人はいないでしょう?

//実際、これら 2 つの関数の完全な呼び出しステートメントは次のようになります。

//1. システムを呼び出します:

function print_r($arg)
{
    echo &#39;我是当前空间声明的函数调用:&#39;.$arg;
}
print_r($welcome); echo &#39;<br>&#39;;
ログイン後にコピー

//2. 現在のスペースを呼び出します:

\two\print_r($welcome);
ログイン後にコピー

//以降の名前は同じですが、所有権が異なります

以上がPHPでの名前空間の宣言と使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!