Php 在while循环(作用域)之外使用变量

Php 在while循环(作用域)之外使用变量,php,loops,scope,while-loop,Php,Loops,Scope,While Loop,关于PHP中作用域的小问题,我似乎无法在while循环之外调用变量$report。我尝试过各种方法,包括return。这不起作用,只有两个函数在这里起作用,一个是循环内的变量$report,另一个是打印它。我不想这样做,虽然它解决了问题,但我不想在用户的屏幕上随意乱说 在过去15分钟左右的时间里,我一直在四处寻找,我没有看到任何类似于这张照片的问题 任何帮助都将不胜感激 <? require "functions2.php"; require "members.php"; $query =

关于PHP中作用域的小问题,我似乎无法在while循环之外调用变量$report。我尝试过各种方法,包括
return
。这不起作用,只有两个函数在这里起作用,一个是循环内的变量
$report
,另一个是打印它。我不想这样做,虽然它解决了问题,但我不想在用户的屏幕上随意乱说

在过去15分钟左右的时间里,我一直在四处寻找,我没有看到任何类似于这张照片的问题

任何帮助都将不胜感激

<?
require "functions2.php";
require "members.php";
$query = "SELECT MAX(DOCid) as prevDOCid from reports";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
    $prevDOCid = $row[prevDOCid];

$thisDOCid = $prevDOCid+1;
$report = "a"."b".$thisDOCid;


}
echo $report;
?>

您可以尝试在循环之前定义变量,例如

$report = "";
while ($row = mysql_fetch_array($result)) {
    $report .= "a"."b".$row["prevDOCid"]+1;
}
echo $report;
我希望这对你有帮助


编辑使用。=not+=

如果您在while循环中回显$report,您会得到任何操作吗?PHP并没有像Java这样的范围概念,这将是一个问题。如果在到达
echo
语句时,
$report
没有声明,我猜PHP从一开始就不会进入
循环。很明显,我不仅仅是想回应$report,为了简单起见,我只是以这种方式发布代码。在循环之外使用变量的唯一方法是首先回显它。PS:您真的不应该使用
$row[prevDOCid]
。使用引号:
$row['prevDOCid']
。它可能会工作,但是。它给出了未定义的变量,这是正确的。@RVward您错了。它们可以在循环中声明,也可以在循环之外使用。给你。不同之处在于它将新值连接到
$report
,而不仅仅是在循环的每次迭代中覆盖它。@RVWard。因此,如果您完全按照问题中的方式运行脚本,它将告诉您,
$report
未定义?您实际期望的结果是什么?Purhaps在上一个循环中,您只是用一个空值覆盖变量…@Vilius如果我想访问while循环顶部的这个变量,有可能吗?