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 相关文章推荐
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
初识php MVC
Sep 10 PHP
php实现字符串首字母大写和单词首字母大写的方法
Mar 14 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
iOS10推送通知开发教程
Sep 19 PHP
php将html转为图片的实现方法
May 19 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
pip安装python库的方法总结
2019/08/02 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
党员批评与自我批评
2014/02/12 职场文书
大学生党员自我批评
2014/02/14 职场文书
企业后勤岗位职责
2014/02/28 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
个人委托书范文
2015/01/28 职场文书
工作时间调整通知
2015/04/24 职场文书
2015年教师国培感言
2015/08/01 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫