PHP 名前空間の名前空間とインポートの使用に関する詳細な使用ガイド

亚连
リリース: 2023-03-26 10:00:02
オリジナル
1631 人が閲覧しました

PHP では、同じ名前の関数またはクラスは許可されません。プロジェクト内でプログラマーが定義したクラス名や関数名で競合が繰り返されるのを防ぐために、PHP5.3 では名前空間の概念が導入されました。

1. 名前空間、つまりコードを異なる空間に分割することは、互いに独立しており、互いに競合しません。 php ファイルには複数の名前空間が存在できますが、最初の名前空間の前にコードを含めることはできません。コンテンツ空間が宣言された後のコードは、この名前空間に属します (例:

<?php
    echo 111;       //由于namespace前有代码而报错
    namespace Teacher;    class Person{
        function __construct(){
            echo &#39;Please study!&#39;;
        }
    }12345678
ログイン後にコピー

2)。別の空間のクラスまたはメソッドを呼び出す場合は、名前空間を指定する必要があります。例:

<?php
    namespace Teacher;    class Person{
        function __construct(){
            echo &#39;Please study!<br/>&#39;;
        }
    }    function Person(){
        return &#39;You must stay here!&#39;;
    };    namespace Student;    class Person{
        function __construct(){
            echo &#39;I want to play!<br/>&#39;;
        }
    }    new Person();                    //本空间(Student空间)
    new \Teacher\Person();           //Teacher空间
    new \Student\Person();           //Student空间
    echo \Teacher\Person();          //Teacher空间下Person函数
    //输出:
    I want to play!
    Please study!
    I want to play!
    You must stay here!12345678910111213141516171819202122232425
ログイン後にコピー

3. 名前空間に導入された他のファイルは、この名前空間に属さず、パブリック スペースまたはファイル自体で定義された名前空間に属します。例:

最初に 1.php と 2.php ファイルを定義します:

<?php     //1.phpclass Person{
    function __construct(){
            echo &#39;I am one!<br/>&#39;;
        }
}123456
<?phpnamespace Newer;require_once &#39;./1.php&#39;;new Person();      //报错,找不到Person;new \Person();     //输出 I am tow!;12345
<?php     //2.phpnamespace Twoclass Person{    function __construct(){
            echo &#39;I am tow!<br/>&#39;;
        }
}1234567
ログイン後にコピー
<?php
namespace New;require_once &#39;./2.php&#39;;new Person();      
//报错,(当前空间)找不到Person;new \Person();     
//报错,(公共空间)找不到Person;new \Two\Person();  
//输出 I am tow!;123456
ログイン後にコピー

4. use の使用方法を見てみましょう: (use は将来の参照のために省略できます)

   namespace School\Parents;    class Man{
        function __construct(){
            echo &#39;Listen to teachers!<br/>&#39;;
        }
    }    namespace School\Teacher;    class Person{
        function __construct(){
            echo &#39;Please study!<br/>&#39;;
        }
    }    namespace School\Student;    class Person{
        function __construct(){
            echo &#39;I want to play!<br/>&#39;;
        }
    }    new Person();                   //输出I want to play!
    new \School\Teacher\Person();   //输出Please study!
    new Teacher\Person();           //报错
    ----------    use School\Teacher;  
    new Teacher\Person();           //输出Please study!    
    ----------    use School\Teacher as Tc;  
    new Tc\Person();           //输出Please study!  
    ----------    use \School\Teacher\Person; 
    new Person();           //报错
    ----------    use \School\Parent\Man; 
    new Man();           //报错
ログイン後にコピー

上記は私が行ったものです。 PHP 名前空間の名前空間とインポートの使用法をすべての人のためにコンパイルしました。将来、すべての人に役立つことを願っています。

関連記事:

phpでよく使われるマジックメソッド

一般的なPHP関数

PHP名前空間の設計上のアイデアと欠点

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

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