php中while循环的返回值

嗨,我是 MVC 编程的新手。我试图通过谷歌搜索从 stackoverflow 和其他站点找到解决方案,但没有一个对我有用。


请指导我哪里做错了。


我的控制器代码:


function getAllusers($id){

    global $conn;

    $users = [];

    $sql = "SELECT * from Users WHERE id=$id";

    $ownerdata = mysqli_query($conn, $sql);

    while($row = mysqli_fetch_assoc($ownerdata))

    {

        $users[] = $row;

    }

    return $users;

}

查看(一段)代码:


    getAllusers($user_id);

    var_dump($users);

在var_dump($users);我得到null和在控制器中,如果我var_dump()在返回之前这样做,我得到一个数组。


请指导我克服这个问题。谢谢你!


FFIVE
浏览 163回答 2
2回答

海绵宝宝撒

您的函数getAllusers()返回值,因此您需要将此值放入变量中以在视图中使用。你有两个文件:控制器:与您的数据(数据库等)通信。 视图:显示从某个控制器调用中收集的数据的位置。创建函数时会发生什么getAllusers()?该函数获取数据库中的数据并创建数组,如您的问题所示。当您调用函数时,getAllusers()您的$users变量在函数范围内。这意味着$users变量只能在函数内部访问getAllusers()。当您调用getAllusers()另一个文件时,当函数结束时,$users内部函数将从内存中删除。所以,返回函数就是把你需要的那条数据拿回来。因此,当您在函数外部创建一个具有相同名称的新变量时(如下面的代码所示),这个新变量只会接收调用函数的返回值,而您不会丢失工作结果。当你收到值时,你也可以用其他变量名做同样的事情。尝试这个:   $users = getAllusers($user_id);这会将函数的返回值放在getAllusers()变量上$users。

慕森卡

只是一件小事:$users = getAllusers($user_id); var_dump($users);
打开App,查看更多内容
随时随地看视频慕课网APP