实例讲解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 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
第五章 php数组操作
Dec 30 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
php实现的操作excel类详解
Jan 15 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
YII框架批量插入数据的方法
Mar 18 PHP
php之header的不同用法总结(实例讲解)
Nov 28 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
php 可变函数使用小结
Jun 12 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 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
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
Python 元类使用说明
2009/12/18 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Python切片工具pillow用法示例
2018/03/30 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
体育教师求职信
2014/05/24 职场文书
2014年电工工作总结
2014/11/20 职场文书
金砖之国观后感
2015/06/11 职场文书
草房子读书笔记
2015/06/29 职场文书
孙振耀退休感言
2015/08/01 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
小程序实现侧滑删除功能
2022/06/25 Javascript