2011-10-09 82 views
1

在.NET中,我已經做了,我在類方法中傳遞了接口作爲參數。我想知道在PHP中可能嗎?PHP:傳遞接口作爲參數

我的scnerio是我有一個類處理mqin系統功能。現在我想整合Notification系統。我想保持通知系統的獨立性,因爲它不是系統的主要部分,我可以在其他地方使用它。如果我有以下結構:

Interface INotification 
{ 
    public set() 
    public send() 
} 

然後我做的:

class MyClass 
{ 
    public setNotifier(INotification $notifier) 
    { 
    } 
} 

那麼,這可能是我可以訪問設置(),並在一類實施之後發送()嗎?我想知道this C# Example如何工作,他們設置接口類型的參數。

謝謝

+2

你只是忘記了'function'關鍵字無處不在和接口聲明中的分號。但這就是它的工作原理。 – mario

+0

這對於php的大部分部分都是很重要的:只要做到這一點。只需調用你的參數的方法,它會工作。 – TJHeuvel

+0

*(參考)* http://www.php.net/manual/en/language.oop5.typehinting.php – Gordon

回答

0

是的,這是可能的,幾乎和你寫的一樣。這樣的接口的例子:http://api.nette.org/2.0/source-Http.IResponse.php.html#18和這樣的參數的例子:http://api.nette.org/2.0/source-Http.Context.php.html#32

+0

太棒了。 OOPS複雜功能如何工作的一個非常清晰的解釋。事實上,其他的事情也很好解釋。謝謝一堆! – Volatil3

+0

我有什麼優勢傳遞接口作爲參數而不是類型爲Class的對象?看代碼。 http://pastebin.ca/2088573 – Volatil3