Php 大口大口地发送数据
Guzzle查询中是否可能包含if-else语句?例如:Php 大口大口地发送数据,php,guzzle,Php,Guzzle,Guzzle查询中是否可能包含if-else语句?例如: $client = new Client(); $resp = $client->request('POST', $url, [ 'form_params' => [ 'foo' => 'bar', 'foo2' => 'bar2', if ($_POST['fusroda'] == "rawww"){ 'foo3' => 'bar3', } else { //don't sent rent
$client = new Client();
$resp = $client->request('POST', $url, [
'form_params' => [
'foo' => 'bar',
'foo2' => 'bar2',
if ($_POST['fusroda'] == "rawww"){
'foo3' => 'bar3',
} else {
//don't sent rent
}
...
]
]);
显然这是不可能的。我还有其他选择吗
埃德:我曾考虑过做一个if-else语句,在其中每个语句中放入一个完整的查询,但我的代码将是1000行的非结构化代码
最重要的是,您可以做的是将负责准备数据的逻辑分离到单独的函数中,使应用程序的每个部分只承担一项责任 可能是这样的:
function prepareParams($params)
{
if ($params['fusroda'] == "rawww"){
$params['foo3'] = 'bar3';
}
unset($params['fusroda'];
...
return $params;
}
$resp = $client->request('POST', $url, [
'form_params' => $this->prepareParams($paramsBeforeEdit)
]);
您可以做的是将负责准备数据的逻辑分离到单独的函数中,使应用程序的每个部分只承担一个职责 可能是这样的:
function prepareParams($params)
{
if ($params['fusroda'] == "rawww"){
$params['foo3'] = 'bar3';
}
unset($params['fusroda'];
...
return $params;
}
$resp = $client->request('POST', $url, [
'form_params' => $this->prepareParams($paramsBeforeEdit)
]);
感谢您抽出时间回复@acabala。这是一个很好的建议,但我不太符合我的需要。正如我提到的,我有一个场景,其中有许多变量需要考虑。所以如果我需要在prepareParams中包含if-else语句,我需要有很多。。。然后我需要10-15个if-else语句。有没有更简单、更有条理的方法可以做到这一点?我也不太理解你的功能。变量$paramsbeforedit是什么?它从何而来?
$paramsBeforeEdit
都是你想设置为form_params的参数,所以一个数组:'foo'=>'bar','foo2'=>'bar2',['fusroda']=>“rawwww”你已经有了它。你能给出一个更全面的例子吗?谢谢你花时间回复@acabala。这是一个很好的建议,但我不太符合我的需要。正如我提到的,我有一个场景,其中有许多变量需要考虑。所以如果我需要在prepareParams中包含if-else语句,我需要有很多。。。然后我需要10-15个if-else语句。有没有更简单、更有条理的方法可以做到这一点?我也不太理解你的功能。变量$paramsbeforedit是什么?它从何而来?$paramsBeforeEdit
都是您想要设置为form_params的参数,所以一个数组:'foo'=>'bar','foo2'=>'bar2',['fusroda']=>“rawwww”您已经有了它。您能给出一个更全面的例子吗?