PHP命名空间namespace的定义方法详解


Posted in PHP onMarch 29, 2017

本文实例讲述了PHP命名空间namespace的定义方法。分享给大家供大家参考,具体如下:

定义命名空间

对于空间的命名,在此我想不用文字解释,更好的解释是用实例来证明:

For example:

下面这段代码是”test.php”里面的文件:

namespace Test;
class Test{
    public function Ttest(){
     echo "这是Test里面的测试方法"."<br>";
    }
}

接下来我将用三种不同的方式进行访问,我把这三个访问程序写在一个名叫“index.php”的文件中:

方法一:

namespace Index;
require 'test.php';
$T=new \Test\Test();
$T->Ttest();

所得结果为:

这是Test里面的测试方法

方法二:

namespace Index;
namespace Test;
require 'test.php';
$T=new Test();
$T->Ttest();

所得结果为:

这是Test里面的测试方法

方法三:

namespace Index;
require 'test.php';
use Test\Test;
$T=new Test();
$T->Ttest();

所得结果为:

这是Test里面的测试方法

注: namespace Index可写可不写,这只是index.php文件的空间命名。这三种方法所得结果都是一样的。

定义子命名空间

定义:

与目录和文件的关系很象,PHP 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义。

实例如下图,这是我自定义的项目目录:

PHP命名空间namespace的定义方法详解

one.php

namespace projectOne\one;
class Test{
    public function test(){
     return "this is a test program";
    }
}

为了访问one.php中Test类下的test()方法,我在Two中的代码如下:

Two.php

namespace projectOne\one;
require '../projectOne/One.php';
$O=new Test();
echo $O->test();

Output: this is a test program

同一文件中定义多个命名空间,它们之间相互访问

test.php

namespace projectOne\one{
    class test{
      public function hello(){
        return "helloworld";
      }
    }
}
namespace projectOne\Two{
    class project{
      public function world2(){
        return "welcome to china";
      }
    }
    class project2 extends \projectOne\one\test{
      public function wo(){
        return "this is my test function ,it is name wo";
      }
    }
}
namespace projectOne\Two{
    $p=new project2();
    echo $p->wo()."<br>";
    echo $p->hello();
}

output: this is my test function ,it is name wo
helloworld

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php标签云的实现代码
Oct 10 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
探讨:如何使用PhpDocumentor生成文档
Jun 25 PHP
thinkphp中空模板与空模块的用法实例
Nov 26 PHP
php查看当前Session的ID实例
Mar 16 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
php创建类并调用的实例方法
Sep 25 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
php mysql_list_dbs()函数用法示例
Mar 29 #PHP
php json相关函数用法示例
Mar 28 #PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 #PHP
php事务回滚简单实现方法示例
Mar 28 #PHP
php中bind_param()函数用法分析
Mar 28 #PHP
php实现基于PDO的预处理示例
Mar 28 #PHP
php中str_pad()函数用法分析
Mar 28 #PHP
You might like
学习php分页代码实例
2013/10/24 PHP
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
python如何为创建大量实例节省内存
2018/03/20 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
keras.layer.input()用法说明
2020/06/16 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
《珍珠泉》教学反思
2014/02/20 职场文书
会计专业求职信范文
2014/03/16 职场文书
超市创业计划书
2014/04/24 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
清洁工个人工作总结
2015/03/05 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
交通安全教育主题班会
2015/08/12 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书