Android程序员学PHP开发(30)-ThinkPHP5.0(2)命名空间-PhpStorm

转载请注明出处: http://blog.csdn.net/iwanghang/
觉得博文有用,请点赞,请评论,请关注,谢谢!~


     命名空间 使用范围 访问方式

     *

     命名空间

     从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,

     对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中

     存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目

     录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

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

     *

     ThinkPHP5采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加

     高效的类库自动加载机制。

     http://www.kancloud.cn/manual/thinkphp5/118014

     *

     function 适用于命名空间

     const 适用于命名空间

     class 适用于命名空间

     define 不适用于命名空间

     *

     访问方式:

     1、非限定名称访问方式

     2、完全限定名称访问方式

     3、限定名称访问方式(相对路径)


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


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


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

    function getmsg(){
        echo '456<br>';
    }
    //define('MN','iwanghang0');
    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 '789<br>';
    }



转载请注明出处: http://blog.csdn.net/iwanghang/



欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式

微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com



觉得博文有用,请点赞,请评论,请关注,谢谢!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值