通过接口作为函数参数(PHP)?

用户名

我正在观看有关编码规则的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章