考慮下列情形參數的構造函數級聯
class URISplit {
var $REQ_URI;
//some more variables
function __construct($uri) {
//some code
$this->REQ_URI = $uri;
//some code yet again
}
}
及以下
class URIResolve extends URISplit {
//some variables
function __construct($uri) {
//some code
}
}
和另一
class PageControl extends URIResolve {
//some variables
function __construct($uri) {
//some more code
}
}
,現在下面的語句
$page = new PageControl($_SERVER['REQUEST_URI']);
此聲明是否可確保所有課程的正確構造。
換句話說,class URISplit
和class URIResolve
的構造函數會使用提供給class PageControl
的構造函數的字符串,並進行適當的構造。
我的目標是創建一個對象class PageControl
並放鬆,看看它做的工作。工作意味着 - >
- 分裂的URI(由
class URISplit
完成) - 解決它(其中獲取數據,什麼是問即是否它的一個帖子,網頁,新聞,或其他任何東西)(秉乘
class URIResolve
) - 加載適當的標題,頁面和其他頁面組件(由功能
class PageControl
呼做!長的問題!
描述你應該調用添加到父類的構造,但由所需要的參數($ URI)我的問題代碼中的所有三個類都提供給基類構造函數。 這將直接在最奇妙的類構造函數 – OrangeRind 2009-06-24 07:44:14
哦!所以不要像Java/C++中那樣級聯構造函數,或者僅在涉及參數化構造函數的情況下才是鏈接上的文章?所以這意味着首先加載默認構造函數,然後當控制返回到父類時,我們顯式調用子類參數化構造函數? – OrangeRind 2009-06-24 07:52:40