2013-08-04 60 views
1

我正在研究基本任務/成就係統。我有一個我們稱之爲questManager的類。我確定完成任務的方式是將Action對象與Quest對象進行比較。 questManager保存一個尚未完成的Action對象數組。標準操作使用情況如下所示:$ actionObject-> used() - > item(itemID)-on() - > user(userID);根據相同類型的對象調用對象方法

我想知道的是,如果可以接受該對象,將它傳遞給任務管理器,並將隨傳遞參數一起調用的方法應用於任務管理器的不完整操作數組中的所有操作對象?

我知道我可以簡單地構建一個與提供的參數一起調用的方法數組。我只是不確定在這種情況下PHP是否有本地特性。我已經閱讀了反思,但我不確定這是我正在尋找的。非常感謝您的幫助。

回答

0

在查看PHP文檔時,我發現有人編寫的MethodLog類利用__call魔術方法。實質上,它將具有傳遞參數的所有函數調用記錄到數組中。然後,您可以將一個對象傳遞給MethodLog類的重放方法。它循環傳入的對象並從傳入的對象中調用所有記錄的函數。所以我返回一個MethodLog對象,調用適用的函數$ methodLog-> used() - > item(itemID)等等,然後將MethodLog對象傳入我的任務管理器。任務管理器遍歷我所有的操作,並調用MethodLog調用的每個操作對象上的函數!

非常整齊的發現和讚美誰認爲一個人了。