实例讲解PHP中使用命名空间


Posted in PHP onJanuary 27, 2019

让我给你一个类的简单例子:

<?php 
 
namespace Dojo;
 
class Ninja
{
 
}

在上面的示例中,我们在Dojo命名空间中创建了一个名为Ninja的新类。如果我们没有使用命名空间,并且我们的应用程序中包含了另一个名为Ninja的类,那么我们将得到一个错误,说明我们不能重新声明类。

那么命名空间就可以解决这个问题。我们可以创建另一个类,像这样:

<?php 
 
namespace Training;
 
class Ninja
{
 
}

现在,如果我们将这两个文件都包含在应用程序中,就可以很容易地区分我们想要使用哪个Ninja类。

作为一个例子,这里有一些代码,说明我们将如何使用Ninja类:

<?php
 
// require both of our ninja classes
require "Dojo/Ninja.php";
require "Training/Ninja.php";
 
// create a new Ninja in the Dojo namespace
$ninja1 = new Dojo\Ninja();
 
// create a new Ninja in the Training namespace
$ninja2 = new Training\Ninja();

这两个类是不同的,可能具有不同的功能,因此命名空间允许我们使用相同的类名,并通过它们的名称空间对它们进行区分。你还可以使用PHP use函数使代码更具可读性。例如,假设我们只想使用Ninja而不是引入Dojo\Ninja。

我们可以这样做:

<?php
 
// require both of our ninja classes
require "Dojo/Ninja.php";
require "Training/Ninja.php";
 
use Dojo\Ninja as Ninja;
 
$my_ninja = new Ninja();

当我们想要使用另一个Ninja文件时,就可以简单的如下操作:

use Training\Ninja as Ninja;

就是这样!简单吧!

我想指出的最后一点是,通常在使用命名空间时,你要遵循命名空间的文件夹结构,以便更容易找到这些文件的位置。

所以我们的Training / Ninja.php文件可能会存在于Training文件夹中。

实例讲解PHP中使用命名空间

因此,想要继续在项目中添加易于记忆和常见的类名。只要记得给他们一个命名空间!

PHP 相关文章推荐
在线竞拍系统的PHP实现框架(二)
Oct 09 PHP
PHP 上传文件大小限制
Jul 05 PHP
用PHP的ob_start() 控制您的浏览器cache
Aug 03 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
php中switch语句用法详解
Aug 17 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 PHP
PHP的PDO错误与错误处理
Jan 27 #PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 #PHP
PHP的PDO预处理语句与存储过程
Jan 27 #PHP
PHP中数组转换为SimpleXML教程
Jan 27 #PHP
实例讲解php实现多线程
Jan 27 #PHP
php中访问修饰符的知识点总结
Jan 27 #PHP
实例讲解php将字符串输出到HTML
Jan 27 #PHP
You might like
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
javascript回到顶部特效
2016/07/30 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
让python json encode datetime类型
2010/12/28 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
django2 快速安装指南分享
2018/01/05 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
python dumps和loads区别详解
2020/02/04 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
经典c++面试题四
2015/05/14 面试题
自我评价格式
2014/01/06 职场文书
通信生自我鉴定
2014/01/18 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis