2010-07-24 63 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.

希望有所帮助。

编辑: 对不起做了一些本地测试,发现我的声明不正确,修改为正确。

相关问题