簡體   English   中英

如何使用名稱空間訪問子類的函數?

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

因此,我有一些類試圖與PHP的命名空間一起使用,並且在訪問最低級別的類中的函數時遇到了一些麻煩。

布置方式如下...

Activity -> Post

Activity有一個命名空間activity ,並Post有一個命名空間post

在我的Post類的頂部,我有以下代碼。

namespace Post;
use activity\activity;

那是我創建類文件然后擴展Activity類時PHPStorm創建的代碼。

因此,當我嘗試訪問Post內部的公共函數時,我已經嘗試了這兩種方法...

\activity\post::function();

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

但是PHPStorm告訴我這兩個都不存在。

那么,訪問這些較低級別功能的實際方法是什么?

我已經在Google上搜索了很多,但是顯然我沒有在尋找正確的東西,因為我還沒有找到有關子類的任何信息。

非常感謝您對理解其工作原理的幫助。

不要使用\\activity ,而要使用activity

\\activity正在使用\\ (或基本)名稱空間。

使用不擴展類,它創建別名。 由於您具有Use activity\\activity ,因此可以通過運行activity::function()而不是使用完整的名稱空間\\activity\\activity::function()來訪問activity類中的\\activity\\activity::function()

您還可以將use \\activity\\activity as test定義use \\activity\\activity as test和訪問函數,例如test::function()

我不確定名稱空間是否與類同名,但是sjagr在注釋中解決了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM