$ djs_all_num = mysql_num_rows($ djs_all_db); 而($ djs_all = mysql_fetch_array($ djs_all_db)){ 如果($ djs_all_num% “2”){PHP%运算符,应该返回什么结果?
随着我的if()语句,这应该减半行的量,所以在别的进一步上它应该显示其余的。
这是正确的吗?
$ djs_all_num = mysql_num_rows($ djs_all_db); 而($ djs_all = mysql_fetch_array($ djs_all_db)){ 如果($ djs_all_num% “2”){PHP%运算符,应该返回什么结果?
随着我的if()语句,这应该减半行的量,所以在别的进一步上它应该显示其余的。
这是正确的吗?
它不会减半。它以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) {
%运算符aka模数(编辑)确定是否存在余数(/编辑)。经常用于确定奇数/偶数行。
所以1%2等于 .5 (我想如果我的数学是正确的)。 2%2 = 0.
希望有所帮助。
编辑: 对不起做了一些本地测试,发现我的声明不正确,修改为正确。
我从来没有得到其他运行,任何想法为什么? – Sam 2010-07-24 02:25:16
它实际上并没有减半,但它应该将我的行“拆分”为两组。 – Sam 2010-07-24 02:25:50
@Sam,如果你的行数总是奇数,那么if总是会运行。如果你想在行之间交替,你需要使用行索引,而不是行数。 – 2010-07-24 02:30:17