gpt4 book ai didi

php - 将接口(interface)作为函数参数(PHP)传递?

转载 作者:可可西里 更新时间:2023-10-31 22:10:08 25 4
gpt4 key购买 nike

我正在观看有关编码规则的 Jeffs Laracast 教程之一。

function signUp($subscription) 
{
if ($subscription == 'monthly')
{
$this->createMonthlySubscription();
}
elseif ($subscription == 'forever')
{
$this->createForeverSubscription();
}
}

他想在这里使用多态和接口(interface)。他将上面的代码修改为:

function signUp(Subscription $subscription)
{
$subscription->create();
}

我不明白他在这里做什么。他是否将“订阅”接口(interface)作为函数参数传递……?我在之前所有关于接口(interface)的教程中从未见过这一点。

最佳答案

function signUp(Subscription $subscription)
{
$subscription->create();
}

此方法需要一个名为 $subscription 的参数。此参数必须是实现 订阅 接口(interface)的具体对象(或null)。

这是通过参数前所谓的“类型提示”(http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration)完成的。

Subscription 在这里不需要是接口(interface) - 它也可以是类,并且给定的参数必须是 Subscription 的实例或任何派生类型。

关于php - 将接口(interface)作为函数参数(PHP)传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com