我現在正在練習php。我有一個問題。single = on while while
我看到一個=
在一些while循環。通常在MySQL查詢。那它代表什麼?
兩個==
表示相等。但單個=
?你能告訴我這背後的邏輯嗎?
我現在正在練習php。我有一個問題。single = on while while
我看到一個=
在一些while循環。通常在MySQL查詢。那它代表什麼?
兩個==
表示相等。但單個=
?你能告訴我這背後的邏輯嗎?
while ($row = mysql_fetch_row($query))
{
//do stuff
}
這保持直到一個NULL
值(結果結束)被發現查詢結果句柄。 $row
然後包含從調用中獲取的行,以便它可以用於處理。
這也是 「速記」 用於檢查一個NULL
結果:
while (($row = mysql_fetch_row($query)) != null)
{
//do stuff
}
它還可以取代for
循環:
for ($i = 0; $i < mysql_num_rows($query); $i++)
{
//do stuff
}
全部是等價的。
但什麼用,而點循環? – jankli 2011-05-04 19:47:08
它將數據庫結果集中的一行分配給$ row var,它將繼續循環,同時有一行要分配,否則循環將結束。現在在循環內部,您可以使用$ row var來利用行數據,如$ row ['col_1']。 – 2011-05-04 19:50:39
這就是分配運算符。
單個=
的意思是「轉讓」。一個賦值總是賦給一個變量並返回結果。因此,舉例來說:
while($row = mysql_fetch_array($results)) {
// ...
}
雖然mysql_fetch_array($results)
返回一個有效的陣列,它循環。當它返回null
(意思是結果結束)循環退出。
但在while循環中使用什麼點? – jankli 2011-05-04 19:51:45
我認爲,如果你解釋作業是表達的一部分,你的答案將會受益,例如, $ row將包含mysl_fetch_array()的結果,同時測試的結果也完全相同。 – hakre 2011-05-04 19:52:50
那麼,你有一個MySQL結果集。'mysql_fetch_array'在該集合中返回* next *結果並返回它,如果沒有更多記錄,則返回'null'。所以'while'循環遍歷所有返回的記錄,每次將每個記錄放入'$ row'中。 – Ryan 2011-05-04 19:53:34
這裏是一個另類:
$row = mysql_fetch_assoc($thing);
while (isset($row)) {
// do stuff
$row = mysql_fetch_assoc($thing);
}
你可以看到,這是一個有點打字以下(代碼可能是更有效的)位置:
while (($row = mysql_fetch_assoc($thing)) != null) {
// do stuff
}
很好地解釋了。非常感謝你。 – jankli 2011-05-04 20:00:30