许多方法参数与批量参数

Jos*_*ack 5 php performance laravel

在效率方面哪个更好:

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

我的意思是 :

public function addToDb($firstName, $lastName, $phone, $address, ...)
{
Run Code Online (Sandbox Code Playgroud)

要么

public function addToDb(Request $request)
{
  $firstName = $request->firstName;
  $lastName= $request->lastName;
  $phone= $request->phone;
  $address= $request->address;
  //
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*vit 5

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

function addToDb($firstName, $lastName, $phone, $address){...}
Run Code Online (Sandbox Code Playgroud)

并且使用这种方法例如10次.如果将来您的应用程序需要进行一些更改而您必须更改某些参数,例如$firstName, $lastName,必须更改为name,那么您必须将初始函数更改为

function addToDb($name, $phone, $address){...}
Run Code Online (Sandbox Code Playgroud)

并且int 10次称为此方法你也必须改变.但是在几秒钟内你必须改变这样的功能体

public function addToDb(Request $request)
{
  $name = $request->firstName . '' . $request->lastName; 
Run Code Online (Sandbox Code Playgroud)

您也可以使用3-rd结构

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`
}
Run Code Online (Sandbox Code Playgroud)

extract函数中您可以使用所有键作为variable http://php.net/manual/en/function.extract.php