2013-05-29 104 views
1

對不起,我不知道什麼標題我應該放在上面。PHP擴展其他類,反之亦然

好吧,這裏我的問題,這也許代碼可以告訴你,我有什麼問題,現在..

文件: -

utilities.php -> class utilitites 
http.php -> class http 

http.php文件

<?php 

required_once('utilities.php'); 

class http extends utilities { 
// code right here.. 
} 

?> 

utilities.php文件

<?php 

required_once('http.php'); 

class utilities extends http { 
// code right here.. 
} 

?> 

我得到的utilities.php文件中的錯誤,有人說..

Fatal error: Class 'http' not found in C:\xampp\htdocs\project\utilities.php on line 5 

那麼,什麼問題真的做我有嗎?

+0

那是圓形? – 2013-05-29 02:31:00

+0

你能解釋一下你需要做什麼的基本原因嗎?我們可能會提出一種不同的方式來完成你想要做的事情,因爲你目前有一個週期性的依賴關係,而這根本不可能奏效。 – jprofitt

+0

兩個班都是彼此的孩子比兩個人都是彼此的孩子沒有任何意義。你想解決什麼問題? –

回答

2

問題是,實用程序繼承自http繼承的實用程序,該實用程序繼承自從繼承自http的實用程序繼承的實用程序。 。 。沒有辦法打破這個循環。機會是你試圖解決的任何問題都有一個不需要這種相互繼承設置的解決方案。

+0

謝謝,我從來沒有想過這個循環,直到我讀到你的答案..我已經修好我的班級,所有工作都正常工作.. :) –

1

你試圖擴展一個不存在的類是「http」,你不能做你想做的事情。爲什麼你應該擴展一個擴展第一個類的類,這是非常不合理的。

難道你沒有第三類,http和公用事業都擴展了最後一個嗎?

1

類層次結構就是這樣的層次結構。

這意味着它是自上而下,無環的。

這就像你是你自己的祖父,我什至不是最壞的回到未來粉絲小說會去那裏。

1

使用繼承時,通常需要子類繼承父類的屬性和方法。在你的例子中,正如其他一些答案所指出的那樣,你正在使'http'類和'utilities'類同時作爲父對象和子對象。你可能想重新思考你正在試圖用繼承來完成什麼。找出哪個類應該是父類,以及子類需要從父類使用哪些屬性/方法。哪些屬性/方法可能會相似但略有不同?