我要訪問我的while循環創建的最後一行(最後$ VAR).I've tryed saomething這樣的:使while循環變量全球
$bar= "";
while ($bar= mysql_fetch_array($foo)) {
global $bar;
}
echo $bar
爲什麼不會工作?
我要訪問我的while循環創建的最後一行(最後$ VAR).I've tryed saomething這樣的:使while循環變量全球
$bar= "";
while ($bar= mysql_fetch_array($foo)) {
global $bar;
}
echo $bar
爲什麼不會工作?
爲什麼不:
$bar = "";
$foobar = "";
while ($bar= mysql_fetch_array($foo)) {
global $bar;
$foobar = $bar;
}
echo $bar
我真的不知道你是與全球$酒吧做什麼,但事實只是分配一個變量,你希望它是什麼,它會保持正確的最後的值,因爲這是最後一次分配的值。
發生這種情況,因爲上次在你的循環中的條件進行評估,mysql_fetch_array
回報FALSE
,分配給$bar
。在控制權退出while循環時使用它時,這是echo
ed的值。要保留最後一個值,分配給循環中的另一個變量;那樣,它將具有在之前的最後一次迭代的值被評估爲false的情況,而不是之後的。例如:
$last = null;
while ($row = mysql_fetch_array($q)) {
$last = $row
}
var_dump($last)
沒有使$bar
全球因爲mysql_fetch_rows
填充在while循環的$欄的點。每次運行while循環時,$ bar的內容將被MYSQL數據庫的下一行結果替換,並且當mysql_fetch_rows
用完行時,它會用假布爾值填充$bar
。
$bar =""; // Value of $bar is "".
while ($bar = mysql_fetch_array($foo)) {
$bar // $bar is an array with a row from $foo
}
// mysql_fetch_array return false and the while loop was aborted, so we end up here
echo $bar // $bar is now false.
如果你想訪問從數據庫中檢索到的所有行,你可以這樣做。
$foobar = array();
while ($bar = mysql_fetch_array($foo)) {
$foobar[] = $bar;
}
//Dostuff with $foobar, ex print_r($foobar);
通過使用while循環就可以解決全局變量problem.First 取從數據庫中的數據,之後,我們在分配任何變量取值在 使用while循環。
$bar = "" ;
while ($bar =mysql_fetch_array($foo)){
global $bar;
$foobar = $bar;
}
echo $bar;
不知道你明白全球是做什麼的,肯定你爲什麼不想或不需要它。刪除該全局行,然後嘗試print_r($ bar)回顯。如果這樣做什麼都不做,那麼你的$ foo查詢可能沒有返回結果。 –