将方法参数作为变量或数组传递

时间:2017-10-18 13:00:10

标签: php arrays

将参数作为数组或单个参数传递给方法更好吗? 我觉得一个数组会使方法更灵活地改变,虽然当然这也可以通过继承来完成,但是使数据传递得更加不透明,因为在处理某些类型的方法时变量可能会很长,但该方法的用户更清楚?

哪个更好,我的假设是否正确?

实施例

/assets

1 个答案:

答案 0 :(得分:5)

方法的全部意义在于尽可能使描述性和具体性。如果您只是传递一个数组,则无法控制发送给函数的内容以及该函数需要什么工作。这很快就会导致错误和错误。

如果您发现自己处于方法变得过大的情况,那么您最有可能构建一个过多的函数。一个函数应该一个的东西。学习拆分它们并改为调用其他功能。

最后,您应该适应OOP并传递对象而不是一堆未以有意义的方式连接的单独变量。而不是:

public function addToCart($sku, $itemPrice, $itemCost, $itemName, $itemColor .... ) {}

你应该这样做:

public function addToCart(Item $item) {}

学习如何构建更大的项目,类和系统是一项艰巨的任务,需要一段时间才能做到正确。即使是经验丰富的建筑师和程序员也会不时发现自己构建糟糕的类和方法。重构是关键。花时间找到解决问题的最佳角度,而不是传递数组或无限参数等快捷方式。