PHP%运算符,应该返回什么结果?

PHP%运算符,应该返回什么结果?,php,modulus,Php,Modulus,$djs_all_num=mysql_num_行($djs_all_db); 而($djs\u all=mysql\u fetch\u数组($djs\u all\u db)){ 如果($djs\U all\U num%“2”){ 对于if()语句,这将使行数减半,因此在else中,它将显示其余的行数 这是正确的吗?它不会将任何内容减半。它给出了带2的余数作为除数。如果偶数为0,如果奇数为1。因此,如果djs\u all\u num为奇数,它将输入if语句。您应该改为编写2。使用从字符串到int的

$djs_all_num=mysql_num_行($djs_all_db); 而($djs\u all=mysql\u fetch\u数组($djs\u all\u db)){ 如果($djs\U all\U num%“2”){

对于if()语句,这将使行数减半,因此在else中,它将显示其余的行数


这是正确的吗?

它不会将任何内容减半。它给出了带2的余数作为除数。如果偶数为0,如果奇数为1。因此,如果
djs\u all\u 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) {

%运算符(编辑)确定是否有余数(/edit)。经常用于确定奇偶行

所以1%2等于。51(我想如果我的数学是正确的)。2%2=0

希望有帮助

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

我从来没有运行过else,知道为什么吗?它实际上不会将所有内容减半,但它应该“拆分”我的行分为两组。@Sam,如果您的行数总是奇数,则if将始终运行。如果您想在行之间切换,则需要使用行索引,而不是行数。因此……我如何做到这一点,我认为mysql_num_rows会计算行数。它会这样做;并且行数永远不会更改,除非您执行新的查询。正如我所说的,我认为您是正确的您需要行索引。请参阅上面的示例代码。