程序不会读取else子句

时间:2016-05-21 11:27:38

标签: php if-statement

我有一个简单的程序,它不会在php中读取else子句 - 这将读取if子句并打印不可能的操作!即使我没有向此页面提交任何表格。相反它应该显示没有动作!!

<?php

    include "connection.php";

    $dt = $_GET['datetime'];
    $dttm = strtotime($dt);
    echo $dttm;

    if($dttm < time())
    {
     echo "<center><strong> Operation not possible !</strong></center>"; 
    }

    else if (!empty($_GET['but1'])) { echo "but1";
     }
    else if (!empty($_GET['but2'])) { echo "but2";
     }
    else if (!empty($_GET['but3'])) { echo "but3";
     }

    else
     {
        echo "No actions yet !!";
     }
?>

任何人都可以帮助我在这里指出我的错误 ...谢谢!

1 个答案:

答案 0 :(得分:2)

从您对该问题的评论:

  

但是当没有提交时,它仍然显示“操作不可能!”

这是因为原始if块正在解析为true。 (如果解析查询字符串值时出错,则$dttm的值可能为false-1,小于time()。){{1}条件是if,那么系统不会转到true块。 elseifby definition,互为排斥。

听起来您可能希望在第一个条件中包含else支票。像这样:

empty()

或者你想构建一组条件。关键是你似乎只想处理第一个块如果首先提交了一个值。