我在很多例子中看到了以下while循環條件,甚至我已經在很多時候使用它。我知道它是如何工作的以及如何使用它。但是,因爲我在這裏編碼的條件沒有任何意義。一個雖然循環條件在PHP
當我看到代碼時,條件就像它總是如此。就像while(1)。因爲* mysql_fetch_assoc()*,傳遞的數據一直傳遞。所以情況是一個常數。
while($arr = mysql_fetch_assoc($data))
{
//other code
}
現在,我在哪裏錯了?
我在很多例子中看到了以下while循環條件,甚至我已經在很多時候使用它。我知道它是如何工作的以及如何使用它。但是,因爲我在這裏編碼的條件沒有任何意義。一個雖然循環條件在PHP
當我看到代碼時,條件就像它總是如此。就像while(1)。因爲* mysql_fetch_assoc()*,傳遞的數據一直傳遞。所以情況是一個常數。
while($arr = mysql_fetch_assoc($data))
{
//other code
}
現在,我在哪裏錯了?
對mysql_fetch_assoc
的每次調用從結果集中獲取下一個行。如果沒有行,則返回false
,並且循環終止。
$data
是一個resource數據類型,並且可能會保持關於哪一行最後被提取的狀態。
這並不罕見,即使數組有一個指向當前元素的內部指針,它可以使用某些數組函數進行操作。
謝謝,這就是我所困惑的。這僅僅是一個函數技巧。 –
從PHP website,mysql_fetch_assoc「如果沒有更多的行返回一個字符串的關聯數組對應於提取行,或FALSE。」
因此,只要還有可用的行,mysql_fetch_assoc
會返回行內容的關聯數組,將指針遞增到下一行,並執行循環。
當沒有更多的行mysql_fetch_assoc
將返回FALSE
和循環將中斷。
另請注意,自PHP 5.5.5起,此功能將被棄用。
*「,並將數組指針增加到下一行」* ...'$ data'不是一個數組。或者你有更多關於如何實現MySQL資源鏈接的信息? –
我的不好 - 已刪除'數組' – PassKit
'$ data'包含您通常無法看到的內部數據,例如「最後一行被取回爲#5」。該數據由'mysql_fetch_assoc'用來返回下一行或NULL。所以不,條件不是恆定的。 – DCoder