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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
用 php 编写的日历
Oct 09 PHP
基于文本的搜索
Oct 09 PHP
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
php图片合成方法(多张图片合成一张)
Nov 25 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水印技术
2007/02/14 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python负载均衡的简单实现方法
2018/02/04 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
如何实现jdbc性能优化
2012/07/30 面试题
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
科学发展观演讲稿
2014/09/11 职场文书
在职证明书模板
2015/06/15 职场文书
二十年同学聚会感言
2015/07/30 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android