使用IF语句验证两件事

时间:2013-07-29 08:29:35

标签: php

抱歉,我找不到更好的主题。

我有一个购物车页面,我正在换两件事......我要向你展示的代码有效,但我想将它们合并。

if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)

上面的代码检查购物车是否为空

if ($_SESSION['User']['AccessLvl'] == null) { *this code check if the user is logged in or not.*

我的问题 我有一个form,我想在购物车为空时在页面上显示此表单。 If是购物车是空的,表单不应该显示。 如果用户已登录,则表单shouldn't显示。

echo ' <form name="login" action="login.php">

</form>';

我累了

if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
} else {

if ($_SESSION['User']['AccessLvl'] == null) {
echo ' <form name="login" action="login.php">

</form>';

} else {

}
}

摘要 SHOULD ONLY, if user is NOT logged in 只有当用户and登录时,表单才会显示在购物车NOT中的某些内容(商品)时。

SHOULD NOT 如果用户已经登录,则表单不应显示,因为要求某人登录两次是没有意义的。

是的,请有人帮帮我。感谢

3 个答案:

答案 0 :(得分:3)

这应该可以解决问题:

if (!(!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) && $_SESSION['User']['AccessLvl'] == null) {
    echo ' <form name="login" action="login.php"></form>';
} else {
    ...
}

以下只是if条件的解释。这是 NO 有效语法:

如果卡不是空的&gt; !(!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)并且用户未登录&gt; $_SESSION['User']['AccessLvl'] == null它会显示表单。

答案 1 :(得分:2)

第一个条件:

if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)

可简单地缩短为:

if (!empty($_SESSION['cart_array']))

因为如果数组为空,count()仅返回小于1的值。此外,empty()内部的行为也类似于isset()

然后,您可以简单地添加其他条件:

if (!empty($_SESSION['cart_array']) && !isset($_SESSION['User']['AccessLvl'])) {
    // show form
}

如果isset()不存在,则$_SESSION['User']['AccessLvl']在尝试访问function isCartEmpty() { return empty($_SESSION['cart_array']); } function isLoggedIn() { return isset($_SESSION['User']['AccessLvl']); } if (!isCartEmpty() && !isLoggedIn()) { // show form } 时不会发出通知。

<强>更新

为了使整个事情更容易维护,你可以引入一些辅助函数,例如:

{{1}}

答案 2 :(得分:1)

好的,所以从本质上来说,你想要检查两件事情,就是我们有两个变量:

变量1:购物车为空

变量2:用户已登录

因此,当有人访问您的网页时,我们会发生4种可能发生的事件:

  1. 购物车为空且用户已登录

  2. 购物车为空且用户未登录

  3. 购物车不为空且用户已登录

  4. 购物车不是空的且用户未登录

  5. 现在,这是您关于表单要显示的条件的最后评论:

    “如果用户已登录,并且登录的用户购物车为空,则表格不应显示”

    所以在第一部分你不想要用户登录时的表格,这意味着上面的选项1和3不应该显示表格(我们留下2和4),然后你说你不'当购物车为空时,我想要表格,这意味着选项2是否定的,我们留下了选项4,那就是你希望表格显示的时候:

    您需要以下表单:购物车不为空并且用户未登录

    转换为代码:

    购物车不是空的:

    !(!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)

    用户未登录:

    $_SESSION['User']['AccessLvl'] == null

    与AND结合,你得到

    if (!(!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) && $_SESSION['User']['AccessLvl'] == null) {
        echo ' <form name="login" action="login.php"></form>';
    } else {
        ...
    }
    
    正如@TobiasKun在他的回答中所说的那样