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文件下载类
Dec 06 PHP
帖几个PHP的无限分类实现想法~
Jan 02 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
解析php中heredoc的使用方法
Jun 17 PHP
Php中使用Select 查询语句的实例
Feb 19 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 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/05/30 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
python根据距离和时长计算配速示例
2014/02/16 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
python如何读写json数据
2018/03/21 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
int和Integer有什么区别
2013/05/25 面试题
国际贸易毕业生求职信范文
2014/02/21 职场文书
协议书怎么写
2014/04/21 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
音乐教师个人总结
2015/02/06 职场文书
道歉情书大全
2015/05/12 职场文书