前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP 命名空间元素访问及use的使用

PHP 命名空间元素访问及use的使用

作者头像
很酷的站长
发布于 2023-01-05 00:20:08
发布于 2023-01-05 00:20:08
1.4K00
代码可运行
举报
运行总次数:0
代码可运行
1. 命名空间的访问分为三种模式

非限定名称访问、限定名称访问、完全限定名称访问

非限定名称访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var_dump();// 不加空间名前缀访问空间元素

限定名称访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\think\var_dump();// 加空间名前缀访问空间元素

完全限定名称访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\app\think\var_dump();//从根命名空间开始访问
<?php
namespace app\think;
function var_dump()
{
    echo 'this is one data <br>';
}
var_dump();//非限定名称访问
namespace app;
think\var_dump();//限定名称访问
\app\think\var_dump();//完全限定名称访问
2. 通过 use 关键字访问空间元素

use 语法规则

使用 as 时空间元素名称则被新名称取代, 原名称不能用了, 故不能称之为起别名, 应该是起新名

use 引入空间元素是从根命名空间引入的, 也就是 完全限定名称访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use [元素类型] [命名空间\]类名 [as 新名称];

空间元素都可以通过 use 引入, 但是对于不同类型的空间元素引入方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use 空间名称\类名;//引入类
use function 空间名称\函数名;//引入函数
use const 空间名称\常量名;//引入常量

使用示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use app\A; // 类
use const app\PI;//常量
use function app\var_dump;//函数

PHP7 开始支持使用 {} 一次引入多个相同命名空间下的多个空间元素 (PHP7之前需要使用多次 use)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use app\{
    A,//类
    const PI,//常量
    function var_dump,//函数
};
3. 系统默认的空间元素访问规则

系统内置的函数、常量、类都属于全局空间

函数和类在空间内访问时系统会先在当前空间找, 找不到再去全局空间找; 而类不会去全局空间下找, 当前空间下类找不到时将抛出 Fatal error

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP-命名空间
在一个大的项目中,可能会遇到同名的类、函数、常量,为了区分这些元素,我们可以将这些元素分别存放到不同的命名空间中。
cwl_java
2022/11/30
1.8K0
PHP命名空间(Namespace)初探
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。
OwenZhang
2021/12/08
1.9K0
PHP命名空间学习笔记
从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。
大江小浪
2019/02/22
1.8K0
PHP中命名空间是怎样的存在?(三)
这是与命名空间有关的最后一篇。最后还是两个比较简单的内容,是关于命名空间和全局相关的一些类、函数、常量的使用对比。当然,最后我们还会总结一下命名空间的名称解析规则做为这三篇系列文章的结束。
硬核项目经理
2020/04/08
1.1K0
php命名空间详解
1、命名空间概述 从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用
苦咖啡
2018/05/07
2.7K0
路由&模块化设计&命名空间
ThinkPHP采用模块化的架构思想,可以支持多模块应用的创建,让应用的扩展更加方便. 先简单说下路由规则:
仇诺伊
2018/09/12
8640
路由&模块化设计&命名空间
php代码抄写笔记
php变量类型松散,定义时变量一个类型,在之后可以赋予另一种类型的参数。 三种作用域:local、global、static global关键字用在函数内变量前表示声明以后使用的变量为全局变量。 static关键字用在函数内变量前表示该变量在函数执行完成后不销毁,且static关键字定义的变量赋予的仅是初始值,再次执行函数,不会执行定义中的赋值操作。
木尤
2020/07/14
4.2K0
萌新必备技能--PHP框架反序列化入门教程
本文面向拥有一定PHP基础的萌新选手,从反序列化的简略原理->实战分析经典tp5.0.x的漏洞->讨论下CTF做题技巧,
猿哥
2020/02/26
7640
PHP的命名空间
命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:
老雷PHP全栈开发
2020/07/02
2.1K0
PHP中命名空间是怎样的存在?(二)
今天带来的依然是命名空间相关的内容,本身命名空间就是PHP中非常重要的一个特性。所以关于它的各种操作和使用还是非常复杂的,光使用方式就有很多种,我们一个一个的来看。
硬核项目经理
2020/04/08
9850
PHP 命名空间介绍
文件夹对于文件夹内的文件来说就充当了命名空间的角色,两个文件名相同的文件不同放在同一个文件夹下,但是可以放在不同的文件夹下
很酷的站长
2023/01/05
1.9K0
PHP 命名空间介绍
PHP7新特性和变化
组合比较符号用于比较两个表达式。当 a 小于、等于或大于 b 时它分别返回-1、0或1,比较规则延续常规比较规则。对象不能进行比较
憧憬博客
2021/03/05
4K0
PHP学习笔记(二)——行云博客
PS:print_r() 函数用于打印变量,以更容易理解的形式展示。如果给出的是 string、integer 或 float 类型变量,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。
行云博客
2020/07/13
3.8K0
[PHP7.0-PHP7.2]的新特性和新变更
php7发布已经升级到7.2.里面发生了很多的变化。本文整理php7.0至php7.2的新特性和一些变化。
conanma
2021/12/02
1.4K0
秒懂php的命名空间
“什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。”(来自php官网)
碧海长天
2021/10/21
1.6K0
php面向对象16篇 命名空间的概述
核心概念:核心慨念都是自定义一个存储空间。避免类名重复系统无法判断该执行哪一个类或是哪一个函数。 问题? 自定义一个存储空间? 存储数据的空间. 问题? 类名重复系统无法判断该执行哪一个类或
贵哥的编程之路
2020/10/28
3450
【C++】C++对C语言的关系,拓展及命名空间的使用
与C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于1979年首次推出,C++是一种高级编程语言,它是在C语言的基础上发展而来,融合了面向对象的思想。它的特点是高效、低级和面向对象。 在C++的发展历程中,最为重要的里程碑是C++11标准的发布。C++11版本增加了许多现代化的特性,例如类型推断、lambdas表达式、移动语义、多线程支持等,大大提高了C++的编程效率和效果。
学习起来吧
2024/02/29
1980
【C++】C++对C语言的关系,拓展及命名空间的使用
PHP命名空间与自动加载类详解
spl_autoload_register() 满足了此类需求。 它实际上创建了 autoload 函数的队列,按定义时的顺序逐个执行。相比之下, __autoload() 只可以定义一次。
用户2323866
2021/07/13
7680
相关推荐
PHP-命名空间
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验