1 回答

TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊
問題:
好的,所以問題是你從字符串調(diào)用函數(shù)。
這是類中的方法:getViewRouter
public function getView(){
return $this->view;
}
此方法返回一個字符串:
$this->view = "\\views\\". $routes[$route]['view'];
然后,您正在嘗試從以下字符串調(diào)用方法:
return $this->router->getView()->getHTML();
可能的解決方案:
顯然,您正在嘗試訪問類中的方法,因此在不了解有關(guān)您的設(shè)置的更多信息的情況下,很難獲得確切的信息,但是我會在下面進(jìn)行猜測,您可以在注釋中指導(dǎo)我朝著正確的方向前進(jìn)。getHTMLTestView
如果將類中的構(gòu)造函數(shù)更改為:App
public function __construct(){
$this->router = new \mvc\Router();
$this->testView = new \views\TestView();
}
然后,您可以將方法更改為以下內(nèi)容:__toString
echo $this->router->getView(); //this returns the correct file path
return $this->testView->getHTML();
我不確定你為什么會這樣做,然后,通常是一個或另一個,但如果你更詳細(xì)地闡述你預(yù)期的輸出,我可以幫你更多,或者希望我的解釋已經(jīng)給了你足夠的工作。echoreturn
溶液:
閱讀注釋后,看起來要從方法的結(jié)果實例化類,可以通過將結(jié)果設(shè)置為變量并從該字符串調(diào)用新類,然后從該類調(diào)用該方法來執(zhí)行此操作。getView
$class = $this->router->getView();
$class = new $class;
return $class->getHTML();
- 1 回答
- 0 關(guān)注
- 94 瀏覽
添加回答
舉報