ホームページ  >  記事  >  バックエンド開発  >  Android プログラマーが PHP 開発を学ぶ (30) - ThinkPHP5.0 (2) 名前空間 - PhpStorm

Android プログラマーが PHP 開発を学ぶ (30) - ThinkPHP5.0 (2) 名前空間 - PhpStorm

黄舟
黄舟オリジナル
2017-03-03 10:03:441124ブラウズ

名前空間の使用範囲 アクセス方法

use using using scope through through through out through out togethermb together out togethermb right together out right out right out rightアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトote - s - にアクセスします

この抽象的な概念はさまざまな場所で見られます。たとえば、オペレーティング システムでは、ディレクトリは関連ファイルをグループ化するために使用され、ディレクトリ内のファイルについては名前空間の役割を果たします。たとえば、ファイル foo.txt はディレクトリ /home/greg と /home/other に同時に存在できますが、2 つの foo.txt ファイルが同じディレクトリに存在することはできません。さらに、ディレクトリ /home/greg の外にある foo.txt ファイルにアクセスする場合、/home/greg/foo.txt を取得するには、ファイル名の前にディレクトリ名とディレクトリ区切り文字を置く必要があります。この原則をプログラミングの分野に適用したのが、名前空間の概念です。

http://php.net/manual/zh/ language.namespaces.php

名前空間は Composer クラス ライブラリと競合し、クラス ライブラリのより効率的な自動読み込みメカニズムが実装されました。

名前空間

クラスは、空間

の名前付けに適しています。定義は、名前空間

2 には適用できません。完全修飾名アクセス方式

3、制限付き名前アクセス方式(相対パス)

<?php
    /**
     * 命名空间 使用范围 访问方式
     *
     * 命名空间
     * 从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,
     * 对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中
     * 存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目
     * 录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。
     * http://www.php.cn/
     *
     * ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加
     * 高效的类库自动加载机制。
     * http://www.php.cn/
     *
     * function 适用于命名空间
     * const 适用于命名空间
     * class 适用于命名空间
     * define 不适用于命名空间
     *
     * 访问方式:
     * 1、非限定名称访问方式
     * 2、完全限定名称访问方式
     * 3、限定名称访问方式(相对路径)
     */


    /**
     * kj1,命名空间1
     */
    namespace kj1;
    function getmsg(){
        echo &#39;123<br>&#39;;
    }
    //define(&#39;MN&#39;,&#39;iwanghang&#39;);
    const MN="iwanghang<br>";
    class Animals{
        public $obj=&#39;cat<br>&#39;;
    }


    /**
     * kj2,命名空间2
     */
    namespace kj2;
    use kj1\Animals;

    function getmsg(){
        echo &#39;456<br>&#39;;
    }
    //define(&#39;MN&#39;,&#39;iwanghang0&#39;);
    const MN="iwanghang0<br>";

    /**
     * 访问方式:1、非限定名称访问方式
     */
    getmsg();

    /**
     * 访问方式:2、完全限定名称访问方式
     */
    \kj1\getmsg();
    \kj2\getmsg();
    echo \kj1\MN;

    $animal = new Animals();
    echo $animal->obj;


    /**
     * 访问方式:3、限定名称访问方式
     */
    //echo kj1\getmsg(); // 会报错,function kj2\kj1\getmsg() 找不到这个函数

    /**
     * 访问方式:3、限定名称访问方式
     */
    namespace kj3;
    echo kj4\getmsg(); // 打印结果:789


    namespace kj3\kj4;
    function getmsg(){
        echo &#39;789<br>&#39;;
    }
以上は Android プログラマが PHP 開発を学ぶ (30) - ThinkPHP5.0(2) 名前空間 - PhpStorm の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。