1

PHPで定義されたインターフェースを拡張する未定義のオブジェクトを関数に渡すことが可能かどうか誰かが知っていますか:

たとえば、この形式の何か:

callFunction(new InterfaceName {

    public function interfaceMethod() {
        // do something
    }

});
4

1 に答える 1

2

いいえ、「インターフェースを実装するオブジェクト」などというものはありません。クラスはインターフェイスを実装できますが、オブジェクトはこのクラスのインスタンスにすることができます。したがって、対応するクラスを定義してからインスタンス化する必要があります。

class Foo implements InterfaceX { /*..*/ }
//...
callFunction(new Foo);

-ただし、匿名クラスに関する情報として、Joe Watkinsによって提案されたそのような機能を備えたRFCがありますが、PHP 内部コミュニティによって今のところ拒否されました。

于 2013-10-24T10:31:33.143 に答える