if和else不指定false

时间:2014-02-21 18:06:19

标签: php if-statement

我有简单的代码,如下所示:

$options = new Options();
$page = new Pages();
if($page->page_limit() <= $options->pageno) {
    $page->userid = $user_details->userid;
    $page->date_of_pub = $_POST['date_of_pub'];
    $resultss=$page->page_create();

}
else {
    $resultss=false;
}

然后在底部,我正在提出一个条件

if(isset($resultss) && isset($resultss) == true) {
    echo $alert->SuccessMsg("Page created successfully!");
}
if(isset($resultss) && isset($resultss) == false) {
    echo $alert->ErrorMsg("You Have Been Reached to your maximum page limit");
}

即使我设置了$result = false的值显示成功消息,也就是显示$resultss = true语句,而不是打印错误值。

建议一些事情。这太奇怪了。我得到了答案非常感谢你:)

还有一件事。

你能告诉我怎样才能摆脱这个" echo $alert->ErrorMsg"这对所有的课程和职能来说都很烦人。我想说一个字。

5 个答案:

答案 0 :(得分:1)

你检查两次:

isset($resultss) && isset($resultss)==true

你应该这样做:

isset($ressults) && $ressults == true

答案 1 :(得分:1)

您的逻辑问题isset()。这样:

if(isset($resultss) && isset($resultss)==true){echo $alert->SuccessMsg("Page created successfully!");}
if(isset($resultss) && isset($resultss)==false){echo $alert->ErrorMsg("You Have Been Reached to your maximum page limit");}

应该是

if(isset($resultss) && $resultss == true){echo $alert->SuccessMsg("Page created successfully!");}
if(isset($resultss) && $resultss ===false){echo $alert->ErrorMsg("You Have Been Reached to your maximum page limit");}

在现有代码中,每个语句中的第二个isset()不正确。在第一个中,它是多余的,你问if(isset($resultss) && isset($resultss))同样的事情,这总是正确的。在第二个中,isset($resultss) && isset($resultss)==false永远不会是真的。这就像true && false

答案 2 :(得分:0)

将您的IF条件更改为:

if(isset($resultss) && $resultss == true)

isset(x)isset(x) == true具有同等意义。你想要的是匹配两个条件: 变量IS SET和它等于正确。

由于我不确定该值是什么,我建议使用这些混淆:

if(isset($resultss) && $resultss !== false)    //the value is set and it is NOT set to false

if(isset($resultss) && $resultss === false)    //the value is set to false

答案 3 :(得分:0)

你真的不需要检查是否设置了变量,因为你在if / else的两个分支中都设置了变量。只是做:

if ($resultss) {
     echo $alert->SuccessMsg("Page created successfully!");
} else {
    echo $alert->ErrorMsg("You Have Been Reached to your maximum page limit");
}

答案 4 :(得分:-2)

您是否尝试将其设为false为默认值?

$options = new Options();
$page = new Pages();
$resultss = false;
if($page->page_limit() <= $options->pageno){
    $page->userid = $user_details->userid;
    $page->date_of_pub = $_POST['date_of_pub'];
    $resultss = $page->page_create();
}