代码之家  ›  专栏  ›  技术社区  ›  Sam Johannes Rudolph

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

  •  -1
  • Sam Johannes Rudolph  · 技术社区  · 14 年前

    $djs_all_num=mysql_num_rows($djs_all_db); 而($djs_all=mysql_fetch_array($djs_all_db))。{ 如果($djs_all_num%“2”)。{

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

    这是正确的吗?

    2 回复  |  直到 14 年前
        1
  •  6
  •   Matthew Flaschen    14 年前

    它不会把任何东西减半。它用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) {
    
        2
  •  1
  •   Jim    14 年前

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

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

    希望有帮助。

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