0

フォームへのアクセスを許可するか、ユーザーのタイプとそのユーザーに権限があるかどうかに基づいてエラー メッセージを表示する PHP の switch ステートメントがあります。サポートが必要なケースは次のようになります。

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

関数呼び出しは、ユーザーのアクセス レベルに基づいてメッセージを表示します。私の問題は、一度に 1 つのメッセージしか表示されないことですが、複数の条件が当てはまる場合があります。たとえば、ユーザーがフォームに対する権限を持っておらず (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 に答える