使 while 循环变量成为全局变量

Gio*_*oro 4 php global-variables while-loop

我想访问我的 while 循环创建的最后一行(最后一个 $var )。我试过这样的事情:

$bar= "";
while ($bar= mysql_fetch_array($foo)) {
    global $bar;
}
echo $bar
Run Code Online (Sandbox Code Playgroud)

为什么那行不通?

nat*_*han 5

发生这种情况是因为上次评估循环中的条件时,mysql_fetch_array返回FALSE,它被分配给$bar。当您在 control 退出 while 循环后使用它时,即为echoed的值。要保留最后一个值,请分配给循环中的另一个变量;这样,它将具有条件评估为 false之前的最后一次迭代的值,而不是之后。例如:

$last = null;
while ($row = mysql_fetch_array($q)) {
    $last = $row
}
var_dump($last)
Run Code Online (Sandbox Code Playgroud)