Php 在while循环中更新全局变量

Php 在while循环中更新全局变量,php,Php,有人能解释一下从while循环中返回值的最有效的方法吗,以便在while循环启动之前使用。 审判了下列案件: echo $var1; while($row = mysql_fetch_array($query1)){ $var1 = $row[0]; } 返回未设置的变量 我还尝试: $var1= 1; echo $var1; while($row = mysql_fetch_array($query1)){ global $var1; $var1 = $row

有人能解释一下从while循环中返回值的最有效的方法吗,以便在while循环启动之前使用。
审判了下列案件:

echo $var1;
while($row = mysql_fetch_array($query1)){
    $var1 = $row[0];
}
返回未设置的变量

我还尝试:

$var1= 1;
echo $var1;
while($row = mysql_fetch_array($query1)){
    global $var1;    
    $var1 = $row[0];
}

只是回声1

这听起来可能很奇怪,但您的回声是在while循环之前还是之后?在上面的示例中,您向我们展示了它在循环之前的状态-我们不希望它显示太多。

您的<代码>是否在循环实际执行时…?是的。可以从while循环的下面/后面获取值。只是不是在之前。你正在试着在打破鸡蛋之前先吃你的煎蛋卷。在设置变量之前,不能打印它们。使变量
全局
不会神奇地反转时间。请检查您的mysql查询。有结果吗?什么是
$query1
?PHP是一种命令式语言,意味着东西按照您编写它的顺序执行……是的。但这不就是全球的目的吗?我猜不是。当我从逻辑上考虑它时,它是不起作用的。你可以在循环之前访问变量,因为它是全局的,当然。但事实是,在循环发生之前,该变量不会被设置为任何值(在第二个示例中,它被显式设置为1)。您希望等到循环执行并更改变量之后再回显它。因此,当您回显第一个变量时,它会查找全局变量(假设它是在回显之前定义的),但由于它是空值,因此不会出现任何结果。@jason3w:
global
意味着您可以从当前函数之外的某个地方访问它。这就像在你的餐厅里有一个送货选择——你可以在家里吃,你不必去他们那里吃煎蛋。我还是不会在煎蛋卷熟之前给你。@Amadan谢谢Amadan。我实际上是素食主义者,但我可以用php将其转化为素食主义类比但这一类比仍然成立。完美的逻辑。无可争辩。