gpt4 book ai didi

php - 为什么在 PHP 中使用 "use"关键字来导入核心标识符?

转载 作者:行者123 更新时间:2023-12-04 16:57:06 24 4
gpt4 key购买 nike

有时在一些库中,例如 thephpleague/csv ,我看到了use关键字来导入核心标识符(例如函数、类或常量),但我完全不明白为什么要导入它们。
请参阅以下示例:

use Generator;
use SplFileObject;
use function filter_var;
use function get_class;
use function mb_strlen;
use function rawurlencode;
use function sprintf;
use function str_replace;
use function str_split;
use function strcspn;
use function strlen;
use const FILTER_FLAG_STRIP_HIGH;
use const FILTER_FLAG_STRIP_LOW;
use const FILTER_SANITIZE_STRING;
或更多来自 here .
在这个文件中导入的这些类、函数和常量属于 PHP 核心,所以我们实际上不需要导入它们。
为什么这个和其他库导入这些?

最佳答案

当您在 namespace ,每个裸名称都引用该 namespace 中的一个名称。 IE。:

namespace Foo;

echo bar();
bar这里的真正意思是 Foo\bar .
如果此 namespace 中不存在名称,则有回退到全局名称的规则。如果您不想依赖这些规则,或者您确实在命名空间中定义了这些名称并且您不想不断地写 \bar()明确地,那时您可以明确地 use这些全局名称可以明确 bar\bar而不是 Foo\bar .
大多数情况下,PHP 内置名称可能不是必需的,但也许项目作者只是简单地将其确定为避免由于 namespace 解析歧义引起的错误的规则。

关于php - 为什么在 PHP 中使用 "use"关键字来导入核心标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56751558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com