2011-10-09 9 views
1

.NETでは、クラスメソッドのパラメータとしてInterfacesを渡したことがあります。私はそれがPHPで可能であることを知りたいですか?PHP:パラメータを渡すインターフェイス

私のscnerioは、mqinシステムの機能を扱うクラスがあります。今は通知システムをそのシステムに統合したいと思っています。私はシステムの主要な部分ではないので通知システムを別にしておきたいと思います。私は次のような構造がある場合:

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型のオブジェクトではなく、Interfaceをパラメータとして渡すとどんな利点がありますか?コードを見てください。 http://pastebin.ca/2088573 – Volatil3

関連する問題