多方法参数与批量参数

时间:2018-12-12 10:02:38

标签: php laravel performance

就效率而言,哪个更好:

  1. 带有很多参数的方法
  2. 包含所有提及参数的批量参数

我的意思是:

public function addToDb($firstName, $lastName, $phone, $address, ...)
{

public function addToDb(Request $request)
{
  $firstName = $request->firstName;
  $lastName= $request->lastName;
  $phone= $request->phone;
  $address= $request->address;
  //

请记住,在此示例$request中,类可能具有许多无用的参数和方法。

2 个答案:

答案 0 :(得分:5)

第二种方法优先。例如,您定义

function addToDb($firstName, $lastName, $phone, $address){...}

并使用了例如10次此方法。如果将来您的应用程序需要进行某些更改,并且必须更改某些参数,例如$firstName, $lastName,必须更改为name,那么这种情况下您必须将初始功能更改为

function addToDb($name, $phone, $address){...}

并且int 10次调用此方法的位置也必须更改。但是在几秒钟的情况下,您必须只更改这样的功能主体

public function addToDb(Request $request)
{
  $name = $request->firstName . '' . $request->lastName; 

还可以使用3级结构

function someFunction(...) {
    $parameterWithData = [
        'firstName' => 'firt name',
        'lastName' => 'last name'
        .....
    ];
    $this->test($parameterWithData);
}


function test($parameterWithData)
{
    extract($parameterWithData);
    dd($firstName, $lastName); // must be print `first_name, last name`
}

extract功能中可以用作variable http://php.net/manual/en/function.extract.php

的所有键

答案 1 :(得分:4)

主要规则是“函数的理想参数个数是 零”。当然很难,但是我们应该保持代码简单,第二种解决方案更好,尤其是当您使用数据值对象时。