Php 类函数不能正确返回数组
我似乎无法正确地从函数返回数组,每次运行脚本时,它都会回显0,尽管我检查了MySQL查询是否至少返回了1行。我也尝试过使用Php 类函数不能正确返回数组,php,arrays,Php,Arrays,我似乎无法正确地从函数返回数组,每次运行脚本时,它都会回显0,尽管我检查了MySQL查询是否至少返回了1行。我也尝试过使用$\u GLOBALS[“论坛答案”][]=…,但是仍然不起作用 public function getAnswers() { $dbh = $this->dbh; $id = $this->question_id; $q = $dbh->prepare("SELECT * FROM answers WHERE question_id
$\u GLOBALS[“论坛答案”][]=…
,但是仍然不起作用
public function getAnswers() {
$dbh = $this->dbh;
$id = $this->question_id;
$q = $dbh->prepare("SELECT * FROM answers WHERE question_id = :id");
$q->bindParam(":id", $id);
$q->execute();
$nr = $q->rowCount();
if ($nr == 0) {
echo "No Questions";
}
$_GLOBALS["FORUM_ANSWERS"] = [];
while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
array_push($_GLOBALS["FORUM_ANSWERS"], array(
"num_id" => $row["num_id"],
"question_id" => $row["question_id"],
"answer" => $row["answer"],
"name" => $row["name"],
"username" => $row["username"],
"ip" => $row["ip"],
"date" => $row["date"],
));
}
return $GLOBALS["FORUM_ANSWERS"];
}
单独文件:
$answers = $forum->getAnswers();
echo count($answers);
您正在分配给
$\u GLOBALS
并返回$GLOBAL
实际上,从外观上看,您不需要使用全局数组-我只需要将数组分配给一个变量(您在函数中初始化该变量)并返回该变量。您正在分配给
$\u GLOBALS
并返回$global
实际上,从外观上看,您不需要使用全局数组-我只需要将数组分配给一个变量(您在函数中初始化该变量)并返回它。在旁注中,您需要将其设置为
$GLOBALS
?如果您while($row=$q->fetch(PDO::fetch_ASSOC)){print\r($row)
是否产生数组?@objective\u d注意到了问题。也就是说,如果您试图设置为global
请不要设置。可以说,设置为global
不是最佳做法。顺便说一句,如果您而($row=$q->fetch(PDO::fetch\u ASSOC)){print\r($row);
这会产生数组吗?@objective\d注意到了这个问题。也就是说,如果您试图设置为global
请不要设置。可以说,设置为global
不是最佳做法。我返回$GLOBALS[“论坛解答”]
,我不是吗?注意下划线$\u GLOBALS
vs$GLOBALS
我返回$GLOBALS[“论坛答案”];
,不是吗?注意下划线$\u GLOBALS
vs$GLOBALS