在我的PHP函数中,如果用户不主持人或,如果用户不是帖子作者等,我想return
。请参阅以下内容基本陈述:
$mod = false;
$status = 'pending';
$currentuser = 22;
$author = 22;
if ( (!$mod) || ( ($status != 'pending') && ($currentuser != $author) ) ) {
return;
}
因此,在此示例中,函数不应返回,因为$currentuser
为$author
且$status
匹配。
我做错了什么?
答案 0 :(得分:2)
(!$mod)
是真的。 if
条件评估为true
你最终拥有:
if ( true || anotherCondition ) {
return;
}
在这种情况下,其他条件是什么并不重要。它评估为true
您的代码非常接近您的需求。
if ( (!$mod) && ($status != 'pending') && ($currentuser != $author) ) {
// if the user is not a moderator AND
// the status is not pending AND
// the user is not the owner, then
return;
}
答案 1 :(得分:0)
if( (!$mod) && ( ($status != 'pending') && ($currentuser != $author) ) )
因为用户不是mod,所以它会使if语句的后半部分短路,使其成为a而不是,或者仅当两个语句都为真时才会返回。
另一个选择是:
if(($mod) || ( ( ($status == 'pending') && ($current user == $author) ) ) {
// do logic here
}
else {
// user is not a mod and user is not the pending author
return;
}