所以,我有几个类正在尝试使用PHP的命名空间,并且在访问最低级别的类中的函数时遇到了一些问题。
这是它的布局方式...
Activity -> Post
Activity
的命名空间为 activity
,Post
的命名空间为 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 在评论中解决了这个问题。