配列内のいくつかの項目と別の変数をチェックする if 式があります。私の元のif式はこれでした:
if(!in_array($user->id, array($lsp->created_by_id, $lsp->approving_committee_pri_id, $lsp->approving_committee_sec_id)) or $user->level != 5)
{
$error[] = 'You do not have permissions to modify this.';
}
しかし、私は望ましい結果を得ていません。基本的に、ユーザーの ID が配列にない場合、またはユーザーのアクセス レベルが 5 に等しくない場合は、$error
配列に入力する必要があります。ユーザーのIDが配列内にあるか、アクセスレベルが5に等しくなるようにデータベースを変更しても、配列にデータが入力されています$error
。
コードを機能させるには、コードをこれに変更する必要がありました。これは、以前のコードとは逆のようなものです。
if(in_array($user->id, array($lsp->created_by_id, $lsp->approving_committee_pri_id, $lsp->approving_committee_sec_id)) or $user->level == 5)
{
//does nothing
}
else
{
$error[] = 'You do not have permissions to modify this.';
}
私は何を間違っていますか?これを1行でやりたいのですが、何かを正しく理解していない可能性があります。PHP 5.4.14 を使用しています。ありがとう!