Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 可以在Laravel中按名称传递变量吗_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 可以在Laravel中按名称传递变量吗

Php 可以在Laravel中按名称传递变量吗,php,laravel,laravel-5,Php,Laravel,Laravel 5,我是从CF到PHP,特别是Laravel,所以我为这样一个基本的问题道歉 我在控制器中有一个功能: public function search( $surveyId = 0 , $sampleId = 0 , $data = [] , $dataSeg = 0 , $returnLimit = 1000 , $returnStartRow = 1 , $sortOn = "" , $sortDir = "" , $previousData = [] ){

我是从CF到PHP,特别是Laravel,所以我为这样一个基本的问题道歉

我在控制器中有一个功能:

public function search(
    $surveyId = 0
,   $sampleId = 0
,   $data = []
,   $dataSeg = 0
,   $returnLimit = 1000
,   $returnStartRow = 1
,   $sortOn = ""
,   $sortDir = ""
,   $previousData = []
){
   // bunch of code
}
我想知道是否可以像在cf中一样只传入需要的特定变量?尝试这样做:

    $myData = [
        "State" => "AZ"
    ];

    $allRecords = (new MyController)->search($surveyId=3762,$data=$myData,$sortOn="name");
我知道在cf中这是一个简单的过程,如果我只需要为一个特定调用使用三个变量,在本例中是surveyId、数据数组和sortOn,但我无法在Laravel(php)中找到正确的方法来实现这一点,或者即使这是可能的。顺便说一句,我使用的是Laravel 5.7

结果: 根据@Nguyen的回答,我的控制器的开头是什么样子的,以防对其他人有帮助:

public function search($params){
    // parameters that should be passed in 
    $surveyId = key_exists("surveyId", $params) ? $params['surveyId'] : 0;
    $sampleId = key_exists("sampleId", $params) ? $params['sampleId'] : 0;
    $data = key_exists("data", $params) ? $params['data'] : [];
    $dataSeg = key_exists("dataSeg", $params) ? $params['dataSeg'] : 0;
    $returnLimit = key_exists("returnLimit", $params) ? $params['returnLimit'] : 1000;
    $returnStartRow = key_exists("returnStartRow", $params) ? $params['returnStartRow'] : 1;
    $sortOn = key_exists("sortOn", $params) ? $params['sortOn'] : "";
    $sortDir = key_exists("sortDir", $params) ? $params['sortDir'] : "";
    $previousData = key_exists("previousData", $params) ? $params['previousData'] : [];
    // end parameters that should be passed in 

     ## logic code 
}

不能按名称传递参数。如果需要,请将参数更改为数组,如下所示:

public function search($param){
  // your code here
}
$allRecords = (new MyController)->search(["surveyId"=>3762,"data"=>$myData,"sortOn"=>"name"]);

不能按名称传递参数。如果需要,请将参数更改为数组,如下所示:

public function search($param){
  // your code here
}
$allRecords = (new MyController)->search(["surveyId"=>3762,"data"=>$myData,"sortOn"=>"name"]);

只要试一下,你就可以在你的手上看到结果。PHP不支持按名称传递。您需要给出所有中间值。请尝试一下,您可以在您的手持设备上看到结果。PHP不支持按名称传递。您需要给出所有中间值。