if($object_type == 'regular') {
if($u_login == $object_user || $u_access >= 3 || $object_access >= 4) {
echo '<p> </p>';
echo '<p><span class="r_button"><a href="/delete_link/'.$object_key.'?link_id=2">'.ex_lang('str_btn_delete').'</a></span></p>';
}
} else
if($object_type == 'comment') {
if($u_login == $object_user || $u_access >= 2 || $object_access >= 4) {
echo '<p> </p>';
echo '<p><span class="r_button"><a href="/delete_link/'.$object_key.'?link_id=2">'.ex_lang('str_btn_delete').'</a></span></p>';
}
}
因此,如果對象是不同類型的用戶需要具有diff訪問級別。如何簡化這個陳述,以避免重複?PHP:有人可以爲我簡化這個IF語句嗎?
我一般都忘記了if的組合,謝謝你提醒我吧!
if($u_login == $object_user || $object_access >= 4 || ($object_type == 'regular' && $u_access >= 3) || ($object_type == 'comment' && $u_access >= 2)) {
echo '<p> </p>';
echo '<p><span class="r_button"><a href="/delete_link/'.$object_key.'?link_id=2">'.ex_lang('str_btn_delete').'</a></span></p>';
}
如果'$ u_login!= $ object_user'和'$ object_access <= 3',它不起作用。即使只有一個'$ u_access'事件成立,Echo也應該被激活。 UPD:等等,我會測試你提供的其他代碼。 – DIES
@DIES - 您的問題本身並未提供用例來說明這種情況;你現有的代碼將不會覆蓋。你總是可以改變這兩個條件來說'|| $ u_access'而不是'|| $ u_access> = 3',這將解決這個問題:) –
@ObsidianAge你的內在條件稍微偏離。你需要使用'&&'而不是'||'來保存邏輯。 –