我在显示 .$app->reactieDoor($topic['id']);
时遇到问题,它会向我显示错误,我不知道为什么会这样!请帮我。
请注意,我是新手,所以如果我在代码中遗漏了什么,请告诉我。
错误所在行:
echo ' laatste reactie: ' .$app->tijd_reactie($topic['id']) . ' door ' .$app->reactieDoor($topic['id']);
错误仅在我尝试使用此部分时显示:
.$app->reactieDoor($topic['id']);
函数代码:
function reactieDoor($topicid) {
$this->database->query("SELECT klanten.voornaam, klanten.achternaam FROM reacties
LEFT JOIN klanten ON klanten.id=reacties.klant_id
WHERE reacties.topic_id=:topic_id ORDER BY create_time DESC LIMIT 1");
$this->database->bind(":topic_id", $topicid);
$reactie = $this->database->single();
return $reactie;
}
我得到的错误
最佳答案
我猜 $this->database->single();
返回一个数组(包含名字和姓氏)所以当你从 return $reactie;
函数,这是一个数组,您正试图将其插入到字符串中……因此出现错误。
由于该数组应包含名字和姓氏,请先尝试将其分配给 $name
变量,然后改用它。
类似于:
$name = "Mysterious Stranger";
if($n = $app->reactieDoor($topic['id'])) {
$name = "{$n['voornaam']} {$n['achternaam']}";
}
echo " laatste reactie: "
. $app->tijd_reactie($topic['id'])
. " door {$name}";
虽然如果该函数总是应该返回包含名称的字符串,但在函数中这样做可能会更好。
在这种情况下,您可以将函数改为:
function reactieDoor($topicid) {
$this->database->query("SELECT klanten.voornaam, klanten.achternaam FROM reacties
LEFT JOIN klanten ON klanten.id=reacties.klant_id
WHERE reacties.topic_id=:topic_id ORDER BY create_time DESC LIMIT 1");
$this->database->bind(":topic_id", $topicid);
$reactie = $this->database->single();
return $reactie ?
"{$reactie['voornaam']} {$reactie['achternaam']}" :
"Mysterious Stranger";
}
关于php - 数组到字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813779/