我有一个小问题。我希望创建一个IF语句,它的反应如下:
- 如果用户不是admin (forum_admin)并且他们不是票证的所有者(userid),但是版主被允许查看票证(allow_moderator_tickets)并且用户是版主(forum_moderator),那么他应该被允许查看票证。
如何使用PHP if语句获得此值
到目前为止,我有这个:
//If user is not allowed to view.
if($userdata['forum_admin']==0 && $ticketDetails['userid']!=$userdata['id'] || $sdata['allow_moderator_ticket']==0 && $userdata['forum_moderator']==1)
redirect("?i=a");
if ( isAdmin || (allowModerators && isModerator) || userID == ticketUser ) allowToSeeTicket
if ( ! (isAdmin || (allowModerators && isModerator) || userID == ticketUser) ) notAllowToSeeTicket
不能混合使用and和or操作符。彼此会宠坏对方。应该使用括号对表达式进行分组,就像算术中的
一样。重构你的代码使其可读性更好
$admin = ($userdata['forum_admin']);
$owner = ($ticketDetails['userid'] == $userdata['id']);
$moder = ($sdata['allow_moderator_ticket'] == 1 AND $userdata['forum_moderator']==1)
if !($admin OR $moder OR $owner) {
redirect("?i=a");
}