实例讲解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中的实现trim函数代码
Mar 19 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
php curl模拟post请求小实例
Nov 13 PHP
php获取域名的google收录示例
Mar 24 PHP
php以post形式发送xml的方法
Nov 04 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
PHP中的替代语法介绍
Jan 09 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
PHP常见的6个错误提示及解决方法
Jul 07 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
THINKPHP5.1 Config的配置与获取详解
Jun 08 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 clearstatcache()函数详解
2010/03/02 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
Python中非常实用的一些功能和函数分享
2015/02/14 Python
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
详解python里的命名规范
2018/07/16 Python
python 深度学习中的4种激活函数
2020/09/18 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
艺术设计专业求职自荐信
2014/05/19 职场文书
车辆年审委托书范本
2014/09/18 职场文书
店面出租协议书范本
2014/11/28 职场文书
意向协议书
2015/01/27 职场文书
高中教师个人总结
2015/02/10 职场文书
放假通知
2015/04/14 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers