在一些代码里面看见有使用use function functionname
这样的语句;比如这样:
use function array_key_exists;
use function array_keys;
use function array_map;
在php官方文档也看见这样的介绍 文档
请问下这样有什么优点
在一些代码里面看见有使用use function functionname
这样的语句;比如这样:
use function array_key_exists;
use function array_keys;
use function array_map;
在php官方文档也看见这样的介绍 文档
请问下这样有什么优点
你可以把命名空间想象成硬盘的目录在同一个目录下不能有两个相同名字的文件(类、方法、常量),默认情况下,创建的类都是挂载在根路径(全局命名空间)的。而处于 PHP 的预设方法都是处于全局命名空间的,有时候我们觉得那个方法不顺手想要去修改一下,如果是在全局命名空间下重写了这个方法(事实上大多数时候还会出现异常 提示方法被重复定义),那么如果在别的地方需要调用到这个同名的原生方法时,就因为你重写写全局命名空间下的这个方法,导致没法访问到原生方法。
那么这时候就可以创建一个命名空间(创建目录),你就可以在这个命名空间下重写这个方法,然后在平级命名空间(当前目录)下调用这个方法时,默认会调用当前命名空间中的可用方法,如果没有就去全局命名空间找。如果想直接使用全局命名空间下的方法,即在方法名前面加上 \
。
在任何位置使用全局命名空间下的方法都无需手动引入(use
),除非当前命名空间下有同名的方法、类、常量。
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答536 阅读✓ 已解决
773 阅读
命名空间了解一下
use
, 假设在一个php
文件中有, 两个Class A
,同时我们需要进行使用其中的一个Class
如何使用呢?这个时候就需要引入命名空间的概念, 代码空间隔离, 一个命名空间一个作用域, 例如
;