gpt4 book ai didi

php - 在 PHP 中将 use 语句放在命名空间语句之前到底会发生什么?>

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

<?php
namespace A;
Use \B\C;
C::bar();
这将引发此错误:未找到 Class 'B\C'
(使用工作)
<?php
Use \B\C;
namespace A;
C::bar();
这将引发此错误:未找到 Class 'A\C'
(使用不起作用)
manpage说:

The use keyword must be declared in the outermost scope of a file (theglobal scope) or inside namespace declarations.


如果 use 关键字必须出现在命名空间之前,它是否不应该抛出编译错误或警告?
或者如果在命名空间关键字之前使用 use 关键字会发生什么? namepsace 关键字是否会重置使用 use 关键字完成的导入?

最佳答案

use适用于声明它的命名空间。因此,您的第一个示例表示“对于 A 命名空间中的代码,C 表示 \B\C”,并且您的代码位于 A 中命名空间,所以别名触发。您的第二个示例的意思是,“对于没有命名空间的代码, C 表示 \B\C”,但您的代码在 A 中命名空间,所以别名不会触发。像这样思考你的例子可能会有所帮助:

namespace A {
use B\C;
C::bar();
}

和:
use B\C;
namespace A {
C::bar();
}

关于php - 在 PHP 中将 use 语句放在命名空间语句之前到底会发生什么?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59720853/

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