【发布时间】:2011-11-12 08:34:57
【问题描述】:
关于 PHP 范围的小问题,我似乎无法在 while 循环之外调用变量 $report。我尝试了各种方法,包括return。这不起作用,这里唯一起作用的两个函数是如果我在循环内echo 变量$report,或者如果我print 它。我不想这样做,虽然它解决了问题,但我不希望用户屏幕上出现乱码。
过去 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;
?>
【问题讨论】:
-
如果你在 while 循环中回显 $report ,你有什么操作吗?
-
PHP 并没有真正的作用域概念,比如 Java 中这会成为问题的地方。如果在到达
echo语句时没有声明$report,我猜PHP 从来没有进入while循环。 -
嗯,它不工作。我显然不只是想回应 $report,为了简单起见,我只是以这种方式发布代码。我可以在循环外使用变量的唯一方法是先回显它。
-
PS:你真的不应该使用
$row[prevDOCid]。使用引号:$row['prevDOCid']。它可能有效,但it's wrong. -
它给出了未定义的变量,这是正确的。
标签: php loops scope while-loop