Jeffs Laracastチュートリアルのコーディング規則について見ています。インターフェイスを関数パラメータ(PHP)として渡しますか?
function signUp($subscription)
{
if ($subscription == 'monthly')
{
$this->createMonthlySubscription();
}
elseif ($subscription == 'forever')
{
$this->createForeverSubscription();
}
}
ここでは多型性とインターフェイスを使用したいと考えています。彼は上記のコードを次のように変更します:
function signUp(Subscription $subscription)
{
$subscription->create();
}
私はここで何をしているのか分かりません。彼は関数のパラメータとしてインタフェース "Subscription"を渡していますか?以前のすべてのインターフェイスに関するチュートリアルでこれを見たことはありませんでした。
'$ subscription'はインターフェイスであり、クラスではありませんか? – Daan
'$ subscription'は' Subscription'インタフェースを実装するクラスのオブジェクトでなければなりません。したがって、関数のパラメータとして特定のクラスを指定する必要はありません – RomanPerekhrest
これはいわゆるヒントです。こちらをご覧ください:http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration – colburton