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

Mor*_*rds 1 php arrays

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

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

例子

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

public function addToCart($itemArray, $userArray) {}
Run Code Online (Sandbox Code Playgroud)

Opt*_*ime 5

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

如果你发现自己处于一个方法变得太大的情况下,你最有可能构建一个功能太多的函数.一个函数应该做件事.学会拆分它们并改为调用其他功能.

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

public function addToCart($sku, $itemPrice, $itemCost, $itemName, $itemColor .... ) {}
Run Code Online (Sandbox Code Playgroud)

你应该做这样的事情:

public function addToCart(Item $item) {}
Run Code Online (Sandbox Code Playgroud)

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