1

我对编程比较陌生,在 javascript 方面做了很多工作,现在正在尝试学习 php。标题基本上是这样说的。我可以在用户定义的函数中传递多少个参数?

我注意到标准函数倾向于接受不同的数字,所以我想知道我是否可以在函数调用中传递无限数量的参数,只要该函数对每个参数执行一些操作。

例如:

调用函数:

Myfunction(1,4,3,2,6)

被调用的函数:

function Myfunction(numOfApples, numOfBananas, numOfPears, numOfOranges, numOfRasberries){'do something with each of these values'}

我要求一般理解,我不想做任何具体的事情,所以水果清单只是传递代表不同事物的参数的一个例子。

4

2 回答 2

3

我不相信您可以发送到函数的参数数量有限制。但是,在我看来,一旦你超过 3 或 4,我倾向于像这样发送数组或对象:

$send_values = array(
    'value1' = 1,
    'value2' = 3,
    'value3' = 2,
    'value4' = 5,
    'value5' = 1,
);

function Myfunction($input) {

}

这样您就不必担心您在变量中发送的确切顺序。另外发送空值要容易得多。您可以简单地使用isset($input['value2'])来查看是否发送了值。但是,如果每个都设置为自变量,您会遇到这个问题:

function Myfunction(value1,value2,value3=null,value4=null,value5=null) {

}

在这种情况下,需要发送 value1 和 value2,但 value 3,4 和 5 可以为 null。因此,如果您只是发送前两个值,您可以简单地执行以下操作:

Myfunction(1,2);

但是,假设您需要发送 value1 value2 和 value5,现在您必须确保为 value3 和 value4 发送空值,以便 value5 填充数据而不是 value3:

Myfunction(1,2,null,null,5);

在我看来,这可能会变成一个集群,并且会让人感到困惑。都是个人喜好,这个问题有一些很好的答案:多少参数太多?

于 2013-08-16T15:13:54.277 回答
1

真的没有限制。但是如果参数的数量开始堆积,您应该考虑创建一个对象来存储这些(假设它们是相关的,就像在您的示例中一样),并将对象作为参数传递。

传递一个对象或数组,可以更容易地在以后对代码进行修改(而不是每次进行更改时都必须更新参数字段)。

于 2013-08-16T15:12:44.957 回答