gpt4 book ai didi

PHP:将未知数量的参数从数组传递给方法

转载 作者:行者123 更新时间:2023-12-05 02:41:24 28 4
gpt4 key购买 nike

这听起来可能是个愚蠢的问题,但请听我说完...

我有一个提供事件和通知的 Laravel 包。通知由 Laravel 包内部的事件触发。包的用户可以根据需要决定使用他们自己的通知,他们只需在包的配置文件中指定即可。

我内置的事件有类似 $order$stock 的方法,实际上这是我的事件之一的示例:

<?php

namespace DoubleThreeDigital\SimpleCommerce\Events;

use DoubleThreeDigital\SimpleCommerce\Contracts\Order;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;

class OrderPaid
{
use Dispatchable;
use InteractsWithSockets;

public Order $order;

public function __construct(Order $order)
{
$this->order = $order;
}
}

在我的包中,有一个监听此 OrderPaid 事件的监听器。然后它会确定在触发此事件时需要发送哪些通知。

我不知道通知本身是什么(由用户配置),我也不知道通知在其构造函数中接受哪些方法。

尽管如此,我已经想出了如何读取通知构造函数并从事件中获取正确的参数,然后将其转换为数组。

现在我有了参数数组,但遇到了一个问题。如何在不知道它接受多少参数的情况下将该数组传递给通知的构造函数?

这是我当前的代码:

$notification = new $notification($howDoIPassInTheArrayStuffIntoHere);

我找到了 call_user_func_array功能,但我认为它真的不符合我的要求,也许我错了?

无论如何,希望这些信息足够了——我从来不擅长解释这里的东西,但希望有人能理解我😆

最佳答案

使用此方法,... 表示该函数接受可变数量的参数。参数将作为数组传递给给定的变量。
检查文档:Variable-length argument lists

function array_of_parameters(...$parameter)
{

}

array_of_parameters('p1','p2','p3');

在你的情况下:

public function __construct(Order ...$order)
{
$this->order = $order;
}

关于PHP:将未知数量的参数从数组传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68141143/

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