博主信息
博文 36
粉丝 1
评论 0
访问量 39990
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP命名空间学习namespace-2018年9月6日
宋超的博客
原创
948人浏览过

1.全名空间的声明与使用实例

<?php
/**命名空间
 */


namespace One{
const NAME = 'xiaopi';
class Db
{
    public static function demo()
    {
        return __METHOD__;
    }

}
 function hello()
{
    return '你好'.NAME.'<hr>';
}
//echo hello();
//echo \Two\NAME;
}

namespace Two{
    const NAME = 'xiaoli';

    class Db
    {
        public static function demo()
        {
            return __METHOD__;
        }

    }
    function hello()
    {
        return '你好'.NAME.'<hr>';
    }
echo NAME; //非限定名称,类似当前目录的文件  全命名空间使用
echo THREE\Show::NAME.'<br>'; //限定名称:使用全名空间前缀 类似子目录/相当目录
echo \One\NAME.'<hr>'; //完全限定名称:从根空间或全局空间开始向下访问
echo \Two\THREE\Show::NAME;
echo THREE\Show::NAME.'<br>';

}


namespace Two\THREE{
    class Show
    {
    const NAME = '我是'.__NAMESPACE__.'常量';
    }
}
namespace {
    echo One\db::demo(),'<br>';
    echo Two\db::demo(),'<br>';
    echo Two\THREE\Show::NAME;

}

//1.多个命名空间之间的分隔符是反斜线\
//2.全局空间和根空间也是反斜线
//3.一个文件中有多个命名空间时访问全名空间下的常量需要注意顺序,如果在类中可以不在意顺序直接访问

运行实例 »

点击 "运行实例" 按钮查看在线实例


2.use导入命名空间实例

<?php
/**
 * 使用命名空间
 */
namespace TEST2;
include 'test3.php';
use TEST3\Test3;
use TEST3\Test2 as newtest;
use TEST4\a\b\c\d\Test4 as T4;

class Test2{
    public static function test2(){
        return __METHOD__;
    }
}
echo Test2::test2().'<br>';
    echo newtest::test3().'<br>';
    echo Test3::test3().'<br>';
echo T4::test4();

运行实例 »

点击 "运行实例" 按钮查看在线实例

test3.PHP

<?php
namespace TEST3;
class Test3{
    public static function test3(){
        return __METHOD__;
    }
}
class Test2{
    public static function test3(){
        return __METHOD__;
    }
}

namespace TEST4\a\b\c\d;
class Test4{
    public static function test4(){
        return'我是<strong style="color:red;">'.__METHOD__.'</strong>方法';
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?
非限定名称: 当前文件或空间中使用时.省略空间名称,使用默认或当前的命名空间  . demo1
限定名称:通常用在子父类访问,或全局空间访问其他空间 前面需要添加命名空间才可访问   demo/  demo/demo1
完全限定名称:用在从根空间/目录访问时  包含了全局前缀操作符及空间名称  /deom/demo1
三者的关系就是像一个目录文件 可以理解为: 完全限定名称>限定名称>非限制名称    很类似 linux下访问目录的规则.
1.cd /1/2/3 完全限制精确打开
2.cd ../1 上级或cd 2/3 下级
3.不限制名称 当前目录直接打开 cd 2

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学