我对编程比较陌生,已经在javascript中工作了很多,现在正在尝试学习php。标题基本上是这样说的。我可以在用户定义的函数中传递多少个参数?
我注意到标准函数倾向于接受不同的数字,所以我想知道是否可能在函数调用中传递无数个参数,只要该函数对每个函数执行某些操作。
例如:
调用该函数:
Myfunction(1,4,3,2,6)
被调用的函数:
function Myfunction(numOfApples, numOfBananas, numOfPears, numOfOranges, numOfRasberries){'do something with each of these values'}
我要求大致理解,我不是要做任何特定的事情,所以水果列表的事情只是传递代表不同事物的参数的一个例子。
答案 0 :(得分: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,但值3,4和5可以为null。因此,如果您只是发送前两个值,则可以执行此操作:
Myfunction(1,2);
但是假设您需要发送value1 value2和value5,现在您必须确保为value3和value4发送空值,以便使用数据而不是value3填充value5:
Myfunction(1,2,null,null,5);
在我看来,这可能会变成一个集群,可能会让人感到困惑。这是个人偏好,这个问题有一些很好的答案:How many parameters are too many?
答案 1 :(得分:1)
没有真正的限制。但是如果参数的数量开始堆积,你应该考虑制作一个对象来存储它们(假设它们是相关的,就像在你的例子中一样),并将对象作为参数传递。
传递一个对象或数组,可以在以后更容易地修改代码(而不是每次进行更改时都必须更新参数字段)。