3
我正在观看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