[英]No condition in PHP while loop?
所以,我正在使用PHP構建我的第一個超級基本CMS。 我不想簡單地復制我正在觀看的教程中的代碼,但我真的很了解它。 困擾我的一件事是使用while循環來獲取帖子。 在下面的代碼中,我無法看到圓括號內的語句如何構成條件。 在我看來它所做的就是為變量$ post分配一個數組。 我想,你怎么能循環不是條件的東西是我的問題。 謝謝!
function get_posts () {
$query = mysql_query("SELECT * FROM posts") or die(mysql_error());
while ($post = mysql_fetch_assoc($query)) {
echo $post['Content'];
}
}
基本上你要獲取新行並將其分配給$post
變量:
while ($post = mysql_fetch_assoc($query))
返回值
返回與獲取的行對應的字符串關聯數組,如果沒有其他行,則返回FALSE 。
因此,當mysql_fetch_assoc
返回false
它被分配給$post
變量,然后在while
內進行評估,然后循環停止。
正如mysql_fetch_assoc手冊頁中所述:
返回值:返回與獲取的行對應的字符串關聯數組,如果沒有其他行,則返回FALSE。
while ($post = mysql_fetch_assoc($query))
意味着第一個$ post獲得一個值。 當出現錯誤時,mysql_fetch_assoc返回false。
while循環檢查$ post是否為false,可以為true,整數,數組等。
它是PHP的一部分。 賦值的結果是賦值。 這允許這樣的事情:
$x = $y = $z = 7;
它為所有3個變量分配7
。 因此,給定
while($row = mysql_result(...)) {
當沒有更多要提取的數據時,mysql_result將返回行數據數組或布爾值false。 該數組/布爾值分配給$ row。 由於這個賦值包含while(),所以array / boolean傳播到while()。
如果你得到一行數據,那么這是一個被while處理為布爾值的數組,並且循環繼續。 如果沒有更多數據,mysql_fetch返回一個布爾值false,它被賦值給$ row,而false也是賦值的結果,這意味着while()得到一個FALSE,並且循環終止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.