0为什么不能参与运算怎样才能让0参与计算
php中null的最终值是0吗?<html>
    <head>
        <title>简单计算器</title>
    </head>
    <body>
    <?php
        if(isset($_POST["num1"])&&isset($_POST["num2"]))
       {
        if(empty($_POST["num1"])){
                  echo"<font color='red'>第一个操作数不能为空</font><br/>";
                  unset($_POST["sub"]);
           }           if(empty($_POST["num2"])){
                  echo"<font color='red'>第二个操作数不能为空</font><br/>";
                  unset($_POST["sub"]);
           }
           
          $oper=$_POST["oper"];
          $num1=$_POST["num1"];
          $num2=$_POST["num2"];
          
         if($oper=="/"||$oper=="%"){
                 if($num2==0){
                        echo"<font color='red'>0 不能作为除数</font><br/>";
                        unset($_POST["sub"]);
                 }
         }
     }
  ?>
 <table border="1" align="center" width="400">
      <form action="" method="post">
      <caption><h2>简单计算器</h2></caption>
      <tr>
      <td><input type="text" size="10" name="num1" value="<?php
                                                               if(!empty($num1))
                                                                      echo $num1;
                                                                   ?>"></td>
          <td>
              <select name="oper">
                  <option value="+" <?php 
                                          if($_POST["oper"]=="+")
                                                 echo "selected";
                                     ?>>+</option>
                  <option value="-" <?php 
                                          if($_POST["oper"]=="-")
                                                 echo "selected";
                                      ?>>-<option> 
                  <option value="*" <?php 
                                          if($_POST["oper"]=="*")
                                                 echo "selected";
                                      ?>>*<option>
                  <option value="/" <?php 
                                          if($_POST["oper"]=="/")
                                                 echo "selected";
                                      ?>>/<option>      
                  <option value="%" <?php 
                                          if($_POST["oper"]=="%")
                                                 echo "selected";
                                      ?>>%<option>
               </select>
           </td>
           <td><input type="text" size="10" name="num2" value="<?php 
                                                                    if(!empty($num2))
                                                                           echo $num2;
                                                               ?>"></td>
           <td><input type="submit" name="sub" value="计算"></td>
     </tr>
 <?php 
      if(isset($_POST["sub"])&&!empty($_POST["sub"])){
       $sum=0;
      
       switch($oper)
       {
         case "+":
              $sum=$num1+$num2;
              break;
         case "-":
              $sum=$num1-$num2;
              break;
         case "*":
              $sum=$num1*$num2;
              break;
         case "/":
              $sum=$num1/$num2;
              break;
         case "%":
              $sum=$num1%$num2;
              break;
       }
       echo"<tr><td colspan='4' align='center'>";
       echo"计算结果是:$num1 $oper $num2=$sum";
       echo"</td></tr>";
      }
      
      ?>
       </form> 
    </table>
  </body>
</html>                                                                                                                                                                      

解决方案 »

  1.   

    if(empty($_POST["num1"])){
    改成
    if( empty($_POST['num1']) && $_POST['num1'] !== 0 )empty :
    bool empty ( mixed $var )
    如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。比较运算符:
    $a ==  $b 等于 TRUE,如果 $a 等于 $b。 
    $a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同。(PHP 4 引进) 
    $a !=  $b 不等 TRUE,如果 $a 不等于 $b。 
    $a !== $b 非全等 TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 引进) 
      

  2.   

    if(empty($_POST["num1"])){
    改成
    if( empty($_POST['num1']) && $_POST['num1'] !== 0 )这样还是实现不了呀
      

  3.   

    if( empty($_POST['num1']) && $_POST['num1'] !== '0' )