gpt4 book ai didi

php 命名空间 : what needs to be qualified?

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

我是在 PHP 中使用命名空间的新手,它们看起来很简单。然而,当我在一个包含类、接口(interface)和闭包的大文件的顶部添加一个命名空间时,代码完全停止工作。显然,某些元素没有正确限定。

例如:

<?php
namespace MyNamespace;
interface MyInterface { ... }
class MyClass implements MyInterface { ... }
...

我阅读了 php.net 上的文档,但找不到需要在单个命名空间(全局或其他)下限定的元素的简单列表。

所以我的问题是,如果您只是在一个没有命名空间的文件的顶部声明一个命名空间,那么在这种情况下哪些元素需要限定?

最佳答案

您现在拥有的方式是将所有内容都放在一个文件中,该文件中的每个类、接口(interface)或函数现在都在 MyNamespace 命名空间中。因此,在这些类、接口(interface)和函数中,如果要引用位于不同 namespace (全局或命名)中的类,则必须使用它的完全限定名称(或使用 use 语句在名称的顶部声明别名)文件)。注意:前置\将使您进入全局命名空间。

此外,从文件外部,如果要访问这些类、接口(interface)或函数之一,则必须使用完全限定名称。

MyNamespace\MyInterface
MyNamespace\MyClass

我还应该提到,这不是典型的设置。根据 psr 标准,每个文件应该只有 1 个类。看看 http://www.php-fig.org/有关标准和实践的更多指导。

关于php 命名空间 : what needs to be qualified?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104611/

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