Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 类函数不能正确返回数组_Php_Arrays - Fatal编程技术网

Php 类函数不能正确返回数组

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

我似乎无法正确地从函数返回数组,每次运行脚本时,它都会回显0,尽管我检查了MySQL查询是否至少返回了1行。我也尝试过使用
$\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