一尘不染

我的PHP函数应该接受参数数组还是应该显式请求参数?

php

在我正在开发的PHP Web应用程序中,我看到以两种可能的方式定义的函数。

方法1:

function myfunc($arg1, $arg2, $arg3)

方法二:

// where $array_params has the structure array('arg1'=>$val1, 'arg2'=>$val2, 'arg3'=>$val3)
function myfunc($array_params)

什么时候应该使用一种方法来替代另一种方法?看来,如果系统要求不断变化,因此myfunc的参数数量不断变化,则方法1可能需要大量维护。


阅读 274

收藏
2020-05-29

共1个答案

一尘不染

如果系统变化频繁,以至于使用索引数组是最好的解决方案,那么我想这就是您的后顾之忧。:-)

通常,函数/方法不应使用太多参数(5个加减2是最大值),我想说你应该坚持使用命名(最好是提示类型)参数。(只有大量可选数据时,带索引的参数数组才真正有意义-
一个很好的例子是配置信息。)

正如@Pekka所说的那样,传递一系列参数也很容易记录,因此对于其他人/您自己来说,在n个月内就难以维持。

更新表…

顺便提一句,经常提到的《 代码完整》
一书对这些问题进行了相当详细的研究-这是我强烈推荐的书。

2020-05-29