实例讲解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程序的php代码
Apr 07 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
Jul 22 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
php对数组排序代码分享
Feb 24 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
PHP检测用户语言的方法
Jun 15 PHP
php实现的简单检验登陆类
Jun 18 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 PHP
Nginx下ThinkPHP5的配置方法详解
Aug 01 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的面向对象编程
2006/10/09 PHP
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
PHP开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
PHP多例模式介绍
2013/06/24 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
用JavaScript显示随机图像或引用
2009/04/21 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
销售辞职报告范文
2014/01/12 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
高三英语复习计划
2015/01/19 职场文书
校园新闻稿范文
2015/07/18 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL