实例讲解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 COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
php中把美国时间转为北京时间的自定义函数分享
Jul 28 PHP
php获取系统变量方法小结
May 29 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
Jun 19 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP命名空间简单用法示例
Dec 28 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 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正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
使用JavaScript破解web
2018/09/28 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
python 接收处理外带的参数方法
2018/12/03 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
如何用Django处理gzip数据流
2021/01/29 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
C#笔试题集合
2013/06/21 面试题
cf收人广告词大全
2014/03/14 职场文书
超市促销活动总结
2014/07/01 职场文书
大学生安全责任书
2014/07/25 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书