实例讲解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中根据变量的类型 选择echo或dump
Jul 05 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
CI框架自动加载session出现报错的解决办法
Jun 17 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
php计算整个目录大小的方法
Jun 01 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 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数据库操作类代码(增,删,改,查)
2013/04/08 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
php生成图片验证码
2015/06/09 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
php中__toString()方法用法示例
2016/12/07 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
python实现微信远程控制电脑
2018/02/22 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Django实现随机图形验证码的示例
2020/10/15 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
酒店中秋节促销方案
2014/01/30 职场文书
保险公司年会主持词
2014/03/22 职场文书
警示教育活动总结
2014/05/05 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
2014年文员工作总结
2014/11/18 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
初中思想品德教学反思
2016/02/24 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js