数组参数还是对象参数

个人的浅见。

在PHP中给函数传参数的时候,一般来说为了避免参数过长我们可以选择传数组或者是封装一个参数类来传对象。 我的看法是对象肯定是优于数组。

  1. PHP中对于数组参数是值拷贝的,所以一般来说会更加的耗费内存。

  2. PHP中也是可以通过引用传递数组,但是调用方却不知道方法的定义的时候具体是引用还是值参数,除非跳转到方法的定义处查看,而且如果方法中改变了该数组的某个元素的值,会造成比较晦涩的错误。

  3. 对象传递都是传引用,大家都知道对象参数的值是可能被改变的。

  4. 数组参数传递的时候,调用方可以随意的在数组中添加元素,而方法中却不知道其使用的参数具体的值,如果调用方少传了某些参数,可能会导致方法直接报错。而且也很难理解方法中各个元素的含义,只能通过注释的方式来说明。

  5. 对象参数,传递的变量是比较固定的,是在对象参数的类中定义的,开发者很容易就知道具体变量的含义,也可以对该类的用途进行说明。这对于代码的可读性有很大的好处。

  6. 对象传递的缺点就在于可能需要额外的定义一个参数类,会造成额外的工作,但是在现在IDE自动生成类框架的前提下,其实也没有太多的额外工作。

其实无论是PHP还是其他语言,通过定义参数类或者是结构体进行参数传递,都是优于传递数组参数,更优于直接传过多的参数变量的。


Flag Counter