实例讲解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下的权限算法的实现
Apr 28 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
多个PHP中文字符串截取函数
Nov 12 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
PHP魔术方法__GET、__SET使用实例
Nov 25 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
PHP获取当前时间不准确问题解决方案
Aug 14 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
jquery ajax abort()的使用方法
2010/10/28 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
python 图片验证码代码分享
2012/07/04 Python
python中二维阵列的变换实例
2014/10/09 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
学生社团文化节开幕式主持词
2014/03/28 职场文书
淘宝店策划方案
2014/06/07 职场文书
松材线虫病防治方案
2014/06/15 职场文书
2016公司年会通知范文
2015/04/25 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers