php限定名称写法,php命名空间:非限定名称、限定名称、完全限定名称实例详解...
在php命名空间中,需要知道关于空间三种名称的术语:非限定名称、限定名称、完全限定名称,以及PHP是怎样解析它们的。官方文档说得非常好,就直接拿来套了,了解它们对学习后面的内容很有帮助。前面了解到命名空间的子空间和公共空间,命名空间的调用语法像文件路径一样是有道理的,它允许我们自定义子空间来描述各个空间之间的关系。
命名空间中的三个名称的术语如下所示:
1.非限定名称,或不包含前缀的类名称,例如 $comment = new Comment();。如果当前命名空间是Blog\Article,Comment将被解析为Blog\Article\Comment。如果使用Comment的代码不包含在任何命名空间中的代码(全局空间中),则Comment会被解析为Comment。
2.限定名称,或包含前缀的名称,例如 $comment = new Article\Comment();。如果当前的命名空间是Blog,则Comment会被解析为Blog\Article\Comment。如果使用Comment的代码不包含在任何命名空间中的代码(全局空间中),则Comment会被解析为Comment。
3.完全限定名称,或包含了全局前缀操作符的名称,例如 $comment = new \Article\Comment();。在这种情况下,Comment总是被解析为代码中的文字名(literal name)Article\Comment。
其实可以把这三种名称类比为文件名(例如 comment.php)、相对路径名(例如 ./article/comment.php)、绝对路径名(例如 /blog/article/comment.php),这样可能会更容易理解。
在这里创建一个Blog 空间,使用非限定名称,表示当前Blog空间,实例化以后这个调用将被解析。使用限定名称,表示相对于Blog空间,实例化以后这个调用将被解析成 Blog\Article\Comment(),注意类前面没有反斜线。使用完全限定名称,表示绝对于Blog空间,实例化以后这个调用将被解析,注意类前面有反斜线和没有反斜线区别。
其示例代码如下所示:<?php
//创建空间Blog
namespace Blog;
class Comment { }
//非限定名称,表示当前Blog空间
//这个调用将被解析成 Blog\Comment();
$blog_comment = new Comment();
//限定名称,表示相对于Blog空间
//这个调用将被解析成 Blog\Article\Comment();
$article_comment = new Article\Comment(); //类前面没有反斜杆\
//完全限定名称,表示绝对于Blog空间
//这个调用将被解析成 Blog\Comment();
$article_comment = new \Blog\Comment(); //类前面有反斜杆\
//完全限定名称,表示绝对于Blog空间
//这个调用将被解析成 Blog\Article\Comment();
$article_comment = new \Blog\Article\Comment(); //类前面有反斜杆\
//创建Blog的子空间Article
namespace Blog\Article;
class Comment { }
?>
其实之前介绍的一直在使用非限定名称和完全限定名称,现在它们终于有名称了。
命名空间中的三个名称和术语先了解到这里,下一章节将会带朋友们了解命名空间中的别名和导入。
【相关教程推荐】
php限定名称写法,php命名空间:非限定名称、限定名称、完全限定名称实例详解...相关推荐
- python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...
本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...
- python中嵌套函数的应用实例-实例详解python函数的对象、函数嵌套、名称空间和作用域...
函数的对象 python中一切皆对象 函数对象的四大功能 引用 def f1(): print("from f1") f1() #调用函数 print(f1) print(&quo ...
- python类的命名空间_Python之关于类变量的两种赋值区别详解
我就废话不多说了,还是直接看代码吧! # -*- coding:utf-8 -*- #面试题,写一个方法,将一行字符串中所有的单词数量统计出来 class Person(object): TAG = ...
- Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种...
2019独角兽企业重金招聘Python工程师标准>>> 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵 ...
- php 非数字和字母,如何通过非数字与字符的方式实现PHP WebShell详解
前言 本文主要给大家介绍的是关于通过非数字与字符实现PHP WebShell的相关资料,分享出来供大家参考学习,下面来一起看看详细的介绍: 一般来说,我们所写的webshell通常都会包含数字或字母. ...
- abaqus结构工程分析及实例详解pdf_“结构非线性、材料拟合、冲击碰撞、钣金/金属成形、顺序耦合、多物理场、有/非参优化”专题...
课程背景 结构的刚强度.材料参数标定.制造可行性.顺序耦合和多物理场耦合,及其性能优化等,是工程领域的产品设计必须考虑的仿真因素.为了让广大仿真分析人员,更好地掌握结构设计与优化的技术能力,全面理解A ...
- IO复用模型同步,异步,阻塞,非阻塞及实例详解
IO模型介绍 常用的5种IO模型:blocking IOnonblocking IOIO multiplexingsignal driven IOasynchronous IO 再说一下IO发生时涉及 ...
- [4G5G专题-13]:功能 LTE非授权频谱辅助接入技术(LAA )详解
目录 第1章 LTE授权频谱辅助接入LAA概述 1.1 什么是授权频谱与非授权频谱? 1.2 LAA概述 1.3 为什么需要LAA 1.4 LAA的频谱 1.5 在5GHz非授权频谱上,ETSI与FC ...
- sql server修改索引名称_【索引潜规则】覆盖索引、ICP、MRR详解
点击上方蓝色字体,关注我们 上篇文章我们说了创建索引的方法,有聚簇索引.辅助索引.前缀索引.联合索引等,也说了如何利用索引的排序功能,接着本篇文章主要来说一说索引的几种优化策略,首先我们先说下回表的概 ...
最新文章
- javascript知识点
- 利用CMake编译内核模块
- 【Android 高性能音频】Oboe 开发流程 ( 包含头 Oboe 头文件 | 创建音频流 | 设置音频流 | 音频流回调类 AudioStreamCallback )
- 厚积薄发,看腾讯云如何快速从IPv4向IPv6演进?
- ES6:Reflect
- 没想到MySQL还会问这些...
- 多进程 VS 多线程
- LeetCode 293. 翻转游戏
- linux中cv调用摄像头,ubuntu中opencv调用摄像头
- 每个计算机系的学生都学离散数学,离散数学一阶逻辑精要.ppt
- 七步从Angular.JS菜鸟到专家(1):如何开始
- jquery日期时间控件
- 跳槽,成为程序员晋升与成长的唯一手段?
- Go 编码建议——性能篇
- mysql时间设计模式_java 23种设计模式及具体例子 收藏有时间慢慢看
- A non well formed numeric value encountered
- 【SDOI2015】临行前的夜
- Poco Timer
- 视频帧凸包检测 结果存入数据库
- 重新思考人和计算机的关系