PHP 命名空间 namespace 使用了为啥会无效?

2021-12-27 17:00:44 +08:00
 justrand

1053 次点击
所在节点    问与答
12 条回复
holystrike
2021-12-27 17:03:59 +08:00
你 Test 类没有 namespace 啊
justrand
2021-12-27 17:08:18 +08:00
@holystrike 有的,截图忘记截图了
namespace App;
class Test
{
public static function hello()
{
echo "hello world";
}
}
public static function hello()
{
echo "hello world";
}
}
justrand
2021-12-27 17:09:31 +08:00
@holystrike #3 不对
原来代码是这样的
namespace App;
class Test
{
public static function hello()
{
echo "hello world";
}
}
luobailiang
2021-12-27 17:12:54 +08:00
没 include
abigeater
2021-12-27 17:36:56 +08:00
命名空间得配合自动加载或者手动 incldue 吧
elevioux
2021-12-27 18:35:33 +08:00
楼主从其他语言转过来的? php 原生不可以直接通过命名空间来加载的。要手动 require ,或者实现 SPL autoload 。autoload 方法是实现 psr 规范的核心
justfun
2021-12-27 18:45:00 +08:00
你在 app.php 去调用 test.php 的类当然找不到。要不你手动把 test.php include 进来,要不就 spl_autoload_register 自动加载类。

https://www.php.net/manual/zh/function.spl-autoload-register.php
FaceBug
2021-12-27 18:48:46 +08:00
关键词:PSR-4
t6attack
2021-12-27 19:24:57 +08:00
两个文件是独立存在的。
panlatent
2021-12-28 01:58:10 +08:00
好家伙,没一个答对的。
panlatent
2021-12-28 03:37:25 +08:00
好家伙,草率了
justrand
2021-12-28 08:32:05 +08:00
@justfun 感谢,是我理解错了,以为 namespace 后就不需要 include 。感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX