博主信息
博文 35
粉丝 0
评论 0
访问量 40697
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
命名空间的定义、访问、使用—2018-9-16
THPHP
原创
978人浏览过

1、用大括号语法实现在一个脚本中创建多个命名空间并访问成员:

实例

<?php
namespace a{
    const NAME = '天弘';
    class Db{
        public static function hello(){
            return '欢迎你,来到编程世界';
        }
    }
    function demo(){
        return __METHOD__;
    }
}
namespace b\c{
    class Db{
        public static function hello(){
            return '欢迎你,恭喜来到精彩的编程世界';
        }
    }
}
namespace b{
    const NAME = '天天';
    class Db{
        public static function hello(){
            return '欢迎你天弘,恭喜来到精彩的编程世界';
        }
    }
    function demo(){
        return __METHOD__;
    }
    // 访问的是 b命名空间的Db类hello方法
    echo Db::hello(),'<hr>'; 
    // 访问的是 a命名空间的demo方法
    echo \a\demo(),'<hr>';
    // 访问的是 a命名空间的子命名空间hello方法
    echo c\Db::hello();
}

运行实例 »

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

2、使用use 导入其它脚本中的类/常量/函数,并使用别名方式访问:

demo.php文件:

实例

<?php
namespace a;//命名空间
require 'demo1.php';
use b\c\e as he; // 导入命名空间,并且起个别名
// 访问b的命名空间的demo方法,由于起个别名所以直接使用别名加\访问
echo he\demo(),'<hr>';
echo he\Db::hello(),'<hr>';
echo he\NAME,'<hr>';

运行实例 »

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

demo1.php文件:

实例

<?php
namespace b\c\e; // 命名空间
const NAME = '天天';
class Db{
    public static function hello(){
        return '欢迎你天弘,恭喜来到精彩的编程世界';
    }
}
function demo(){
    return __METHOD__;
}

运行实例 »

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


3、非限定名称,限定名称和完全限定名称的命名空间之间的区别与联系是什么?

实例

<?php
namespace a{
    const NAME = '天弘';
    class Db{
        public static function hello(){
            return '欢迎你,来到编程世界';
        }
    }
    function demo(){
        return __METHOD__;
    }
}
namespace b\c{
    class Db{
        public static function hello(){
            return '欢迎你,恭喜来到精彩的编程世界';
        }
    }
}
namespace b{
    const NAME = '天天';
    class Db{
        public static function hello(){
            return '欢迎你天弘,恭喜来到精彩的编程世界';
        }
    }
    function demo(){
        return __METHOD__;
    }
    // 访问的是 b命名空间的Db类hello方法
    echo Db::hello(),'<hr>'; // 非限定名称,不用带有\可以直接访问当前的hello方法
    // 访问的是 a命名空间的demo方法
    echo \a\demo(),'<hr>'; // 完全限定名称,带有\,返回根目录选择a目录中的demo方法
    // 访问的是 a命名空间的子命名空间hello方法
    echo c\Db::hello();// 限定名称,带有\ ,返回父级的目录选择c中hello方法
}

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学