PHP IF AND语句不会执行else部分

时间:2014-08-04 19:12:52

标签: php if-statement

我正在尝试在PHP中使用IF AND语句来测试

  1. 正在按下提交按钮
  2. 我的$testemail varable等于1,即PHP脚本中的有效电子邮件。
  3. 如果电子邮件好,我会: 谢谢,1 //(这是正确的)并发送电子邮件

    如果电子邮件不好我会得到: 谢谢,0。//(这是不对的),电子邮件仍在尝试使用错误的电子邮件地址发送。

    因为脚本正在输出0或1,所以我确定它已经测试了电子邮件并正确地判断它是好还是坏(因此'0''1')但是脚本永远不会去其他声明。我似乎无法获得IF AND声明。我尝试过"1"'1'

    非常困惑。提前谢谢。

    if(!filter_var($emailtmp, FILTER_VALIDATE_EMAIL))
    {
      $testemail = "0";
    }
    else
    {
      $testemail = "1";
    }
    
    global $testemail;
    var_dump($testemail);
    
    if (isset($_POST['submit']) && ($testemail = 1) )       
    {       
        //Everything is good, proceed
        sendEmail(preg_replace(array('/<td>.*href="\?remove.*<\/td>/i', '/<th.*&nbsp;    
             <\/th>/i'), '', $_SESSION['SHOPPING_CART_HTML']));
        $result_message = "Thank You.  $testemail ";
    }
    elseif (isset($_POST['submit']))
    {
        //Missing Required Information
        $result_message = "You must use a Valid email addresse, $testemail  ";
    }
    

2 个答案:

答案 0 :(得分:4)

($testemail = 1)  

应该是

($testemail === 1) 

只有($testemail = 1)只是将testemail的值设置为1(出于if的目的,自成功以来为真)。 ==或者更好,但更准确的===是您想要检查左侧&amp;正确的价值观匹配。

答案 1 :(得分:1)

问题是您将值1分配给$testemail而不是比较它。