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 表单提交给自己
Jul 24 PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
简述php环境搭建与配置
Dec 05 PHP
PHP常用的三种设计模式
Feb 17 PHP
php获取excel文件数据
Apr 21 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 PHP
PHP高并发和大流量解决方案整理
Dec 24 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批量删除cookie的简单实现方法
2015/01/26 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
php防止用户重复提交表单
2015/11/02 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
javascript 函数速查表
2010/02/07 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
python与字符编码问题
2019/05/24 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
What is EJB
2016/07/22 面试题
计算机系统管理员求职信
2014/06/20 职场文书
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记
MySQL 条件查询的常用操作
2022/04/28 MySQL