0

我有一个 PHP switch 语句,它要么授予对表单的访问权限,要么根据用户类型以及他/她是否有权访问表单显示错误消息。我需要帮助的案例如下所示:

case 2:
CheckStatus();
CheckRevokeFlag();
CheckNotifyFlag();
RecordLock();
include 'gotopage1.php';
break;

函数调用根据用户的访问级别显示消息。我的问题是一次只能显示一条消息,但有时可能有多个条件为真。例如,如果用户对表单没有权限 (CheckStatus) 并且该表单也被其他人使用 (RecordLock),那么他会得到“访问被拒绝”和“记录被锁定”。有没有办法解决这个问题,以便用户只收到“拒绝访问”消息或“记录被锁定”消息,或者我应该使用 switch 语句以外的东西?

4

1 回答 1

2

我要在这里在黑暗中拍摄。

假设您的函数是在此模式上定义的:

function funcName() {
    // do some stuff here
    if( $error) echo $error;
}

将其更改为:

function funcName() {
    // do some stuff here
    if( $error) {
        echo $error;
        return false;
    }
    return true;
}

现在函数返回了一些东西,所以我们可以用它做一些事情。switch将您的案例结构更改为:

case 2:
    CheckStatus() or break;
    CheckRevokeFlag() or break;
    CheckNotifyFlag() or break;
    RecordLock() or break;
    include "gotopage1.php";
    break;

所以现在,如果每个函数都返回true(即没有要报告的错误情况),那么它将照常继续。否则,它将命中or break并停止处理剩余的检查。

于 2013-10-23T21:02:55.160 回答