2011-09-21 31 views
0

我在類和它的父類之間引起了一個循環。PHP:有沒有正在使用的類的實例?

我能想到的解決問題的唯一方法是測試是否存在正在使用的子類的實例。無論如何要測試嗎?

於是我休息一下,回來了這個問題。該循環是由類中的__construct方法引起的,該類處理將輸入路由到合適的邏輯。這個類然後被其他類繼承,所以如果我需要自動執行一些通常由用戶完成的操作,我可以很容易地實現它。

我沒有看到發生的事情是,每次調用子類時,都會激活此構造函數以將用戶重定向到正確的代碼。由於輸入是相同的,它被髮送回子類,建立循環。我已經通過取出構造函數並調用站點索引中所需的方法來解決此問題,以便子類不再嘗試自行調用。

+0

你可以把一些代碼,以便不要推測嗎? –

+0

也許在第一次實例化時,childclass中的靜態成員var被設置爲true?在類中基本上是'static $ instantiated = false;',然後在構造函數中將其設置爲true。 –

回答

0

那麼,你應該調整你的代碼以避免循環。這聽起來像是一件壞事,而且很可能會在未來造成麻煩。所以我的建議是重新設計你的代碼,所以你避免了循環而不是修復它。

+0

^^增加了解決問題的詳細信息 –

0

你可以使用instanceof來檢查它是否是一個類的實例。或者is_subclass_of檢查它是否擴展了一個類。 如果你發佈你的代碼,也許有人可以建議一個更好的設計,該循環可能可以避免。

相關問題