我正在观看有关编码规则的Jeffs Laracast教程之一。
function signUp($subscription)
{
if ($subscription == 'monthly')
{
$this->createMonthlySubscription();
}
elseif ($subscription == 'forever')
{
$this->createForeverSubscription();
}
}
他想在这里使用多态和接口。他将上面的代码更改为:
function signUp(Subscription $subscription)
{
$subscription->create();
}
我不明白他在这里做什么。他是否将接口“ Subscription”作为功能参数传递给他?在以前有关接口的所有教程中,我从未见过。
function signUp(Subscription $subscription)
{
$subscription->create();
}
此方法需要一个称为的参数$subscription
。此paramater必须是一个具体的对象(或null
),该器具的Subscription
接口。
这是通过在参数之前使用所谓的“类型提示”(http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration)完成的。
Subscription
此处不必是一个接口-也可以是一个类,并且给定的参数必须是其实例Subscription
或任何派生类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句