实例讲解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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
收藏的一个php小偷的核心程序
Apr 09 PHP
php中define用法实例
Jul 30 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 PHP
PHP实现统计代码行数小工具
Sep 19 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 404错误页面实现代码
2009/06/22 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
初学Python实用技巧两则
2014/08/29 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
详解Django的CSRF认证实现
2018/10/09 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
婚前协议书
2014/04/15 职场文书
2016中秋节广告语
2016/01/28 职场文书