PHP 7 で提供されている匿名クラスはどこで使用でき、使用する必要がありますか? それらのユースケースが見つかりません。
$message = (new class() implements Message {
public function getText() { return "Message"; }});
PHP 7 で提供されている匿名クラスはどこで使用でき、使用する必要がありますか? それらのユースケースが見つかりません。
$message = (new class() implements Message {
public function getText() { return "Message"; }});
探している情報は、RFC が提示されているここで見つけることができます。
「ユースケース」セクションの要点は次のとおりです。
私が提供できる良い例は、カスタムクラスを定義せずに、コンテキスト固有のリスナーを1回だけ使用するか、外部リスナー用のアダプターを提供することです。次に例を示します。
$this-apiCaller->call('api_name', $parameters, new class($businessListener) implements ApiListenerInterface
{
private $listener;
public function __construct($originalListener)
{
$this->listener = $originalListener;
}
public function onSuccess($result)
{
$this->listener->addLog(new SuccessRecord($result));
}
public function onFailure($error)
{
$this->listener->addLog(new ErrorRecord($error));
}
});
匿名クラスは、作成とインスタンス化を同時に行う必要があることを除いて、PHP の通常のクラスと同じです。つまり、他のクラスから拡張したり、インターフェイスなどを使用したりできます。
非常に単純なクラスが必要で、他の場所で二度と使用しないと思われる場合は、それが最適です。もう 1 つの理由は、単純なクラス (複数の単純なメソッドを含む) が必要であり、ドキュメントに時間を費やしたくないため、タスクを達成するために外出先でクラスを作成することです。