ホームページ > バックエンド開発 > PHPチュートリアル > PHP で名前空間を使用する方法

PHP で名前空間を使用する方法

清浅
リリース: 2023-04-05 06:00:01
オリジナル
5538 人が閲覧しました

PHP の名前空間は、同じクラスまたはメソッドを持つことによって生じるコードの競合を解決する方法です。 namespace コマンドを使用して、PHP コードを名前空間に配置します。クラスを呼び出す場合は、まず名前空間を呼び出す必要があります。

PHP プログラムを作成するとき、同じ名前のクラスまたはメソッドが存在するためにプログラムが失敗することがわかります。ただし、PHP の名前空間は、コード競合の問題を解決するのに役立ちます。次に、この記事で、名前空間コードの使用方法を詳しく紹介します。 [推奨コース:

PHP で名前空間を使用する方法PHP チュートリアル

#]次の例には、Demo.php とインデックスの 2 つのファイルがあります。 .php. 2 つのファイルは同じディレクトリにあります。Demo.php ファイルに名前空間と Demo クラスを記述し、index.php が Demo.php 内の Demo クラスを呼び出します。次の例の「出力結果」は、ブラウザはindex.phpにアクセスします。 Demo.php ファイル コード

<?php
namespace DemoNameSpace;
 
class Demo {
    private $mysqlHandle;
 
    public function __construct() {
        echo &#39;This is namespace of PHP demo ,The Demo magic constant "__NAMESPACE__" is &#39;.__NAMESPACE__;
    }
}
?>
ログイン後にコピー

index.php ファイル コード

<?php
    include &#39;Demo.php&#39;;
    use DemoNameSpace\Demo;
    $DemoObj = new Demo();
?>
ログイン後にコピー

出力結果:

“This is namespace of PHP demo ,The Demo magic constant "__NAMESPACE__" is DemoNameSpace”
ログイン後にコピー
上記の例の説明: Demo.php に _NAMESPACE__ マジック定数があります; 「これには、現在の名前空間名の文字列が含まれています。グローバルでは、どの名前空間にも含まれていないコード、空の名前空間が含まれています」 string."

Demo.php を変更せず、index.php ファイルを変更してください

<?php
    include &#39;Demo.php&#39;;
    $Demo = new Demo();
?>
ログイン後にコピー

出力結果:

“Fatal error: Class &#39;Demo&#39; not found in F:\JJserver\demo\index.php on line 4”
ログイン後にコピー
これは一般的な「致命的なエラー」メッセージです。従来の PHP プログラミングの考え方によれば、ここでの出力は上記の出力と一致するはずですが、ここには致命的なエラーがあります。しかし、Demo.php ファイル内のステートメント「namespace DemoNameSpace;」を削除 (またはコメントアウト) すると、正常になります。これは、私たちが通常クラスを作成したりクラスを呼び出したりする最も一般的な方法です。

要約:

名前空間を使用する場合と使用しない場合の 2 つの出力状況を比較し、理解するために名前空間の定義を追加すると、上記の致命的なエラー状況は良好です。わかった。名前空間は Demo.php で定義されます。つまり、名前空間の後に Demo クラスが定義され、その後 Demo クラスが DemoNameSpace 名前空間にマージされます。そのため、この Demo クラスを呼び出す場合は、最初にこの DemoNameSpace を呼び出す必要があります。名前空間、つまり、index.php ファイルの「useDemoNameSpace\Demo」ステートメントを使用します。

[関連する推奨事項:

PHP での名前付け スペースとは

#]

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート