如何使用命名空间访问子类的函数?

How do I access a subclass's functions using namespaces?

所以,我有一些 classes 我正在尝试使用 PHP 的名称空间,但在访问最低级别 class 中的功能时遇到了一些问题。

布局如下...

Activity -> Post

Activity 的命名空间为 activityPost 的命名空间为 post

在我的顶部 Post class 我有这个代码。

namespace Post;
use activity\activity;

这是 PHPStorm 在我创建 class 文件然后扩展 Activity class.

时创建的代码

因此,当我尝试访问 Post 中的 public 函数时,我已经尝试了这两种方法...

\activity\post::function();

$post = new \activity\post();
$post->function();

但是 PHPStorm 告诉我这些都不存在。

那么,访问这些较低级别功能的实际方法是什么?

我在谷歌上搜索了很多,但显然我没有在搜索正确的东西,因为我没有找到任何关于 sub classes 的信息。

非常感谢您帮助理解这是如何工作的。

不要使用\activity,使用activity

\activity 正在使用 \(或基本)命名空间。

使用不会扩展 class,它会创建一个别名。因为你有 Use activity\activity 这使得你可以通过 运行 activity::function() 访问 activity class 中的函数,而不是使用完整的命名空间 \activity\activity::function() .

您还可以定义 use \activity\activity as test 并访问 test::function().

等函数

虽然我不确定命名空间与 classes 同名的意义,但 sjagr 在评论中解决了这个问题。