博主信息
博文 42
粉丝 3
评论 2
访问量 38784
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP三十三天作业-简单命名空间实例-2018-05-11
HeartofSunny的博客
原创
931人浏览过

Nspace.php

<?php
//声明一个PHP的命名空间
namespace PHP;
class NSpace
{
    public function text(){
        echo '我是存在于PHP空间';
    }
}

运行实例 »

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

Nspace2.php

<?php
//声明一个JAVA的命名空间
namespace JAVA;
//对导入的命名空间的同名方法起个别名
use \PHP\NSpace as NS;
//导入类文件
require 'NSpace.php';

class NSpace
{
    function text(){
        echo '我是存在于JAVA空间';
    }
}
//实例化JAVA空间下的类
$javatext = new NSpace();
//输出JAVA命名空间下的text()方法
$javatext->text();
echo '<br>';
//实例化PHP空间下的类
$text = new NS();
//输出JAVA命名空间下的text()方法
echo $text->text();

运行实例 »

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

总结:

        php自5.3.0开始,引入了一个namespace关键字以及__NAMESPACE__魔术常量(当然use关键字或use as嵌套语句也同时引入);那么什么是命名空间呢?php官网已很明确的进行了定义并形象化解释,这里直接从php官网copy一段文字[来源]。

        “什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。”

        目前php5.5系列早已推出,php的面向对象编程思想也在逐渐的完善,而本文要学习的namespace关键字的引入就是为了解决php面向对象编程过程中已出现的各种“麻烦”;具体麻烦如下:

        1    、用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

        2、为了缓解麻烦1,通常编写各种class时会使用较长的类名或为实现不同功能的class添加名称前缀(或后缀)。

        3、不使用魔法函数__autoload的情况下,而每个class又独占一个php文件时,为了调用不同的class,会在使用这些class的另外的php文件的开头位置书写较多的include(或require或require_once)语句。


批改状态:未批改

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

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

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