<?php
  echo "<table border=1 width=400 align=center>";
  for($i=0;$i<12;$i++)
  {
  if($i%3==0)
  echo "<tr>";
  echo "<td>单元格</td>";
  if($i%3==2)
  echo "</tr>";
  }
  echo "</table>";  ?>题目是输出一个3*4的表格
我不太明白第二个if语句的作用,为什么要除3余2
还有是不是所有成对标签只有当遇到</xxx>才生效而忽略<xxx>?我觉得不用第二个echo就可以了啊而且也调试通过了,不懂第二个echo的作用……
这是书上的范例看的有点头晕,看来自己的HTML太差了

解决方案 »

  1.   

    因为$i是从0开始的,所到当$i=2,5,8,11的时候要生成</tr>闭标记。
    你去除了这一段:
     if($i%3==2) 
      echo " </tr>"; 
    也执行成功的原因是HTML有容错功能。但并不表示支持我们这样做。写代码还是严谨一点好。
      

  2.   

      我就说些题外话吧!
      在php中,光是html代码时,最好不要用echo来输出,而应直接把php截断,直接输出html代码,像你上面的代码可这样写: <table border=1 width=400 align=center>
     <?php 
      for($i=0;$i <12;$i++) 
      { 
      if($i%3==0)
        {
      ?>    <tr> 
       <td>单元格 </td>  <?php
        } 
      if($i%3==2) 
      echo " </tr>"; 
      } 
      ?>
     
    </table>   这样写的效率要比echo出的方法高3、4倍