遇到PHP elseif代码崩溃脚本的问题

时间:2016-06-03 17:24:10

标签: php arrays if-statement conditional

当我启用下面的代码导致我的代码崩溃时,我遇到了问题。我无法弄清楚崩溃的位置,但我知道如果我注释掉这部分它将允许代码运行,只是没有在表单的其他部分运行检查。

if (empty($_POST["SCreq"])) {{
    $SCreqERR = "SC requires a Yes or No answer";
} else {
    $SCreq = test_input($_POST["SCreq"]);}
    //  elseif($SCreq = "Yes"; $Email=False)
    //  $EmailERR = "Email is required for SC"
    //  elseif ($SCreq = "Yes"; $emaildist1 = "")
    //  $emaildist1ERR = "First Email Distrobution Group required with SC"
    //  else {
   //       $emaildist1 = test_input($_POST["emaildist1"])
}}

任何帮助都会非常感激,我有一切名字,一切都是正确的。

3 个答案:

答案 0 :(得分:1)

双引号基本上会在“if”块中启动一个新块。所以,你的代码可以这样编写:

if (empty($_POST["SCreq"])) {
    {
        $SCreqERR = "SC requires a Yes or No answer";
    }
    else {
        $SCreq = test_input($_POST["SCreq"]);
    }
}}

不仅括号不平衡(关闭括号比开括号更多),“else”也在“if”块内部开始。删除“if”中的{},即可获得

if (empty($_POST["SCreq"])) {
    else {
        $SCreq = test_input($_POST["SCreq"]);
    }
}}

无效(“else”必须直接在“if”块之后,而不是在其中)。

使用适当的缩进来快速捕捉这些错误。在每个“{”之后,开始一个新行,并更多地缩进代码。在每个“}”之后,开始一个新行,并缩进。在每个块之后,您需要处于与之前相同的缩进级别,否则您将有额外的“{”或“}”。您可以手动执行此操作,也可以让一个好的编辑器为您执行此操作。这种代码使用适当的缩进,并且有效:

if (empty($_POST["SCreq"])) {
    $SCreqERR = "SC requires a Yes or No answer";
}
else {
    $SCreq = test_input($_POST["SCreq"]);
}

答案 1 :(得分:0)

使用IDE帮助检查事物是否正确嵌套。尽管如此,很难说出事情,但...... {{。另外,错误日志!

我假设您查看了文档? http://php.net/manual/en/control-structures.elseif.php

if ($a > $b) {
  echo "a is bigger than b";
} elseif ($a == $b) {
  echo "a is equal to b";
} else {
  echo "a is smaller than b";
}

答案 2 :(得分:-2)

elseif($SCreq == "Yes" && $Email == False)
  $EmailERR = "Email is required for SC";
  elseif ($SCreq == "Yes" && $emaildist1 == "")
  $emaildist1ERR = "First Email Distrobution Group required with SC";
  else {
      $emaildist1 = test_input($_POST["emaildist1"]);}

条件测试是==

多个AND条件放&&。

用;

结束你的陈述