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


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

所以,我有几个类正在尝试使用PHP的命名空间,并且在访问最低级别的类中的函数时遇到了一些问题。

这是它的布局方式...

Activity -> Post

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

在我的帖子类的顶部,我有这段代码。

namespace Post;
use activity'activity;

这是 PHPStorm 在我创建类文件然后扩展我的 Activity 类时创建的代码。

因此,当我尝试在 Post 中访问我的公共功能时,我尝试了这两种方法......

'activity'post::function();

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

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

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

我已经用谷歌搜索了很多,但显然我没有搜索正确的东西,因为我没有找到任何关于子类的信息。

非常感谢您帮助理解其工作原理。

不要使用

'activity,使用 activity

'activity使用的是'(或基本)命名空间。

Use 不会扩展类,它会创建一个别名。 由于您已经Use activity'activity这使得您可以通过运行activity::function()而不是使用完整的命名空间'activity'activity::function()来访问 activity 类中的函数。

您还可以定义use 'activity'activity as test和访问函数,例如 test::function()

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