当我执行条件时,切换案例值传递不工作

时间:2014-08-13 12:13:10

标签: php switch-statement

这是我用来显示下拉值的代码:

 switch ($_POST['input_102']) {
     case 14:
            $mailling=$mailling.'<li>Priority mail (domestic/US only)   <span>$14.00</span></li> ';
        break;
     case 40:
            $mailling=$mailling.'<li>Courier/Express (domestic/US only) <span>$40.00</span></li> ';
        break;
     case 14:
             $mailling=$mailling.'<li>Air Mail (overseas/international) <span>$14.00</span></li> ';
         break;
     case 80:
            $mailling=$mailling.'<li>Courier/Express (overseas/international) <span>$80.00 </span></li> ';
         break;
 }

这里我遇到了一个问题,我有两个值,比如14。   所以我改变了这样的代码。它执行但是当if情况执行时,它在else情况显示结果时不显示任何内容:

 switch ($_POST['input_102']) {
       case 14:
             //custom code
            if($_POST['input_13']=='United States'){
                $mailling=$mailling.'<li>Priority mail (domestic/US only)   <span>$14.00</span></li> ';
             }else{
                $mailling=$mailling.'<li>Air Mail (overseas/international) <span>$14.00</span></li> ';
             }
              //custom code end 

           break;
       case 40:
             $mailling=$mailling.'<li>Courier/Express (domestic/US only) <span>$40.00</span></li> ';
           break;

       case 80:
             $mailling=$mailling.'<li>Courier/Express (overseas/international) <span>$80.00 </span></li> ';
           break;
  }                 

我打印了$ _POST [&#39; input_13&#39;],它的值是美国。为什么我没有得到if案例的结果。

1 个答案:

答案 0 :(得分:1)

试试此代码

if($_POST['input_13']==='United States'){

三个等号带来更多精确度。

另一种方式是:

if($_POST["input_13"]=="United States"){

使用双引号,但这不会产生太大影响,但测试相同。

一般来说对我来说你的代码很完美,但服务器有时无法正常工作。