php命名空间介绍及使用
php  /  管理员 发布于 4年前   951
php命名空间介绍及使用
1. 什么是命名空间?
历史
命名空间在 PHP5.3.0 中引入。
作用
其作用是按照一种虚拟的层次结构组织 PHP 代码,这种层次结构类似操作系统中文件系统的目录结构。
为什么用?
命名空间是现代 PHP 组件生态的基础
现代的 PHP 组件框架代码都是放在各自全局唯一的厂商命名空间中,以免和其他厂商使用的常见类名冲突。
2. 如何用命名空间?
声明命名空间
位置: 在 <?php 标签后的第一行声明
语法: 声明语句以 namespace 开头,随后是一个空格,然后是命名空间的名称,最后以 ; 结尾。
先简单来看看例子 1:
命名空间经常用于设置顶层厂商名,比如我们设置厂商名为 LaravelAcademy:
<?php
namespace LaravelAcademy;
听说过子命名空间吗?
如果我们想用 LaravelAcademy 下的某个文件夹 ModernPHP 中的代码该怎么做呢?
答案是使用子命名空间。 子命名空间的声明方式和前面的示例完全一样,唯一的区别是我们要使用 \ (转义符号) 把命名空间和子命名空间分开,例如:
<?php
namespace LaravelAcademy\ModernPHP;
这个命名空间后的所有类、接口、函数和常量都位于 LaravelAcademy\ModernPHP 中。
结论:
在同一个命名空间中的类没必要在同一个 PHP 文件中声明,可以在 PHP 文件的顶部指定一个命名空间或子命名空间,此时,这个文件的代码就是该命名空间或子命名空间的一部分。因此我们可以在不同文件中编写属于同一个命名空间的多个类。
再来一个让你加深理解的例子 2:
例如, cart 和 order 这两个模块都处于同一个 shop 项目内,通过命名空间子空间表达关系。
<?php
namespace shop\cart;//命名空间表示处于 shop 项目下的 cart
class Test {
}
namespace shop\order;//命名空间表示处于 shop 项目下的 order
class Test {
//申明与上面空间相同的类
}
$test = new Test();//调用当前的类
$cart = new \shop\cart\Test();//调用shop\cart空间的类
?>
命名空间的子空间还可以定义很多层次,例如 cn\my\www\shop 。多层子空间的声明通常使用公司域名的倒置,再加上项目名称组合而成。这样做的好处是域名在互联网上是不重复的,不会出现和网上同名的命名空间,还可以辨别出是哪家公司的具体项目。有很强的广告效应。
注:厂商命名空间是最顶层的命名空间,也是最重要的命名空间,用于识别品牌或组织,必须具有全局唯一性。子命名空间相对而言没那么重要,但是可以用于组织项目的代码。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号