当前位置: 首页 > 面试题库 >

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

鲜于德业
2023-03-14
问题内容

在我正在开发的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可能需要大量维护。


问题答案:

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

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

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

更新表…

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



 类似资料:
  • 首先,image视图具有以下配置(注意fitStart): 然后通过编程方式,对图像的高度进行小的修改,以匹配宽度(在activity.onResume()中)

  • 问题内容: 在Java 中使用vs.有哪些注意事项? 例如,考虑实现一种主要涉及包含s 的集合以及一些关联的元数据的类型。这种类型的构造函数允许一次性初始化对象列表。(可以稍后设置元数据。)此构造函数应接受哪种类型?或? 此决定有哪些考虑因素? 通过库类型,如下面列出的模式集合(这可以从任何被初始化,但 不是 一个),会导致我使用。 但是为什么不接受,因为这足以满足初始化需求?为什么消费者要求的功

  • 问题内容: 我一直在想是否可以在PHP中将函数作为参数传递;我想要类似的东西,当您在JS中编程时: 我想要的是在exampleMethod中的某处执行该功能。这在PHP中可行吗? 问题答案: 如果您使用的是PHP 5.3.0或更高版本,则是可能的。 请参见手册中的匿名函数。 对于您的情况,您将这样定义:

  • 我尝试使用c上的属性来使用它,而不是数据类中太多的setter和getter函数有很多成员变量。 有两个属性类。第一个函数有固定的setter和getter函数,默认为set,get。第二个支持使用其类的自定义setter和getter函数。下面是代码 我正在OptionSet类中测试这些属性,然后将其放入项目代码中 但在使用RWProperty时,即使我传递了模板类型的4个参数,类类型也有set

  • 问题内容: 我对于应该使用javascript创建对象的方式感到困惑。似乎至少有两种方法。一种是使用对象文字符号,而另一种是使用构造函数。有一个相对于另一个的优势吗? 问题答案: 如果您没有与对象相关联的行为(即,如果对象只是数据/状态的容器),则可以使用对象文字。 运用KISS原则。如果除了简单的数据容器之外不需要任何其他内容,请使用简单的文字。 如果要向对象添加行为,则可以使用构造函数并在构造

  • 我想知道我应该更改JTextArea的哪个参数来删除这个: 我希望我的JTextArea是空的,我不想用括号(?)来导航它