2010-07-24 64 views
-1

$ djs_all_num = mysql_num_rows($ djs_all_db); 而($ djs_all = mysql_fetch_array($ djs_all_db)){ 如果($ djs_all_num% 「2」){PHP%運算符,應該返回什麼結果?

隨着我的if()語句,這應該減半行的量,所以在別的進一步上它應該顯示其餘的。

這是正確的嗎?

回答

6

它不會減半。它以2作爲除數給出餘數。如果是偶數,這將是0,如果奇數則爲1。所以如果djs_all_num很奇怪,它會輸入if語句。您應該改寫2。使用從字符串到int的隱式轉換是令人困惑和不必要的。

請注意,這不會按每行操作,因爲左操作數是行總數,而不是行索引。要使用行索引,請執行下列操作:

$row_ind = 0; 
$djs_all_num = mysql_num_rows($djs_all_db); 
     while($djs_all = mysql_fetch_array($djs_all_db)) { 
     if ($row_ind++ % 2) { 
+0

我從來沒有得到其他運行,任何想法爲什麼? – Sam 2010-07-24 02:25:16

+0

它實際上並沒有減半,但它應該將我的行「拆分」爲兩組。 – Sam 2010-07-24 02:25:50

+0

@Sam,如果你的行數總是奇數,那麼if總是會運行。如果你想在行之間交替,你需要使用行索引,而不是行數。 – 2010-07-24 02:30:17

1

%運算符aka模數(編輯)確定是否存在餘數(/編輯)。經常用於確定奇數/偶數行。

所以1%2等於 .5 (我想如果我的數學是正確的)。 2%2 = 0.

希望有所幫助。

編輯: 對不起做了一些本地測試,發現我的聲明不正確,修改爲正確。