摆脱?:PHP中的运算符
我对用于调查的PHP代码有问题。代码只接受一个值“answer”,如果answer不可用,则接受“otherAnswer”。我需要它同时接受“答案”和“其他答案” 这是代码。谢谢你的帮助摆脱?:PHP中的运算符,php,Php,我对用于调查的PHP代码有问题。代码只接受一个值“answer”,如果answer不可用,则接受“otherAnswer”。我需要它同时接受“答案”和“其他答案” 这是代码。谢谢你的帮助 protected function convertRequestToUserAnswersArray() { $answers = []; if ($this->request->hasArgument('answers')) { /** @noinspectio
protected function convertRequestToUserAnswersArray()
{
$answers = [];
if ($this->request->hasArgument('answers')) {
/** @noinspection PhpUnhandledExceptionInspection */
$requestAnswers = $this->request->getArgument('answers');
/** @noinspection PhpWrongForeachArgumentTypeInspection */
foreach ($requestAnswers as $questionUid => $requestAnswer) {
$answers[$questionUid] = $requestAnswer['answer'] ?: $requestAnswer['otherAnswer'];
}
}
return $answers;
}
尝试附加两个答案。如果你想要两个答案,你不需要使用三元运算符
protected function convertRequestToUserAnswersArray()
{
$answers = [];
if ($this->request->hasArgument('answers')) {
/** @noinspection PhpUnhandledExceptionInspection */
$requestAnswers = $this->request->getArgument('answers');
/** @noinspection PhpWrongForeachArgumentTypeInspection */
foreach ($requestAnswers as $questionUid => $requestAnswer) {
$answers[$questionUid] = $requestAnswer['answer'] +' '+ $requestAnswer['otherAnswer'];
}
}
return $answers;
}
我们不知道如何使用
$answers
。因为同时返回answer和otherAnswer需要$answers
作为数组。这意味着$answers
的任何用户都必须进行重构
类似的方法可能会奏效:
$answers[$questionId] = ["answer" => $requestAnswer["answer"], "otherAnswers" => requestAnswer["otherAnswer"] ]
只需为密钥的存在添加一些检查机制
或者,您可以按照另一个SO答案中的建议将其连接起来。正如您所说,您需要这两个值,然后可以存储到数组中,如下所示
$answers[$questionUid][] = $requestAnswer['answer'];
$answers[$questionUid][] = $requestAnswer['otherAnswer'];
通过使用上述脚本,
$answers
将对$questionUid
具有两个值,假设$answers[$questionUid]
是一个数组,您可以尝试将值推送到该数组:
/** @noinspection PhpWrongForeachArgumentTypeInspection */
foreach ($requestAnswers as $questionUid => $requestAnswer) {
$answers[$questionUid] = $requestAnswer['answer'] . '----' . $requestAnswer['otherAnswer'];
}
希望这有帮助。然后将其连接起来,或者将其放入数组中?你试过什么?您遇到了什么问题?请尝试以下操作:$answers[$questionUid]=$requestAnswer['answer']$requestAnswer['answer']:$requestAnswer['otherAnswer']@BhAvikGajjar谢谢,但它仍然只需要“答案”。想想这就是众所周知的
Elvis操作符
”-)@RamRaider true,我的错误我要编辑我的答案代码给出错误:setUserAnswerFromRequestData()必须是字符串类型,null给出代码给出错误:setUserAnswerFromRequestData()必须是字符串类型,给定的null$answer将被写入数据库。代码给出错误:setUserAnswerFromRequestData()的类型必须为string,并给定null