实例讲解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生成EXCEL的东东
Oct 09 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
destoon之一键登录设置
Jun 21 PHP
PHP生成随机密码类分享
Jun 25 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
php session的应用详细介绍
Mar 22 PHP
Yii2框架中日志的使用方法分析
May 22 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
php实现的数组转xml案例分析
Sep 28 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
php 面向对象的一个例子
2011/04/12 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
thinkphp分页集成实例
2017/07/24 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
asp.net和php的区别点总结
2019/10/10 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
python 上下文管理器使用方法小结
2017/10/10 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
QML实现钟表效果
2020/06/02 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
结构工程研究生求职信
2013/10/13 职场文书
干部现实表现材料
2014/02/13 职场文书
出国英文推荐信
2014/05/10 职场文书
关于建议书的格式范文
2014/05/20 职场文书
高三教师工作总结2015
2015/07/21 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js