首页 > 解决方案 > php中带有OR条件的多个!isset()

问题描述

if(!isset($_GET['new_quiz']) || !isset($_GET['view_quiz']) || !isset($_GET['alter_quiz'])){
echo "No";
}
else{ echo "Yes"; }

当我去index.php?view_quiz时,它的结果应该是 Yes,但结果是No。为什么?

我的其他尝试:

(!isset($_GET['new_quiz'] || $_GET['view_quiz'] || $_GET['alter_quiz']))

( ! ) 致命错误:无法在第 94 行的 C:\wamp\www\jainvidhya\subdomains\teacher\quiz.php 中的表达式结果上使用 isset()(您可以使用“null !== expression”)


(!isset($_GET['new_quiz'],$_GET['view_quiz'],$_GET['alter_quiz']))

标签: phpif-statementisset

解决方案


您可能会发现,与反转逻辑相比,代码更易于阅读,我还喜欢对条件有更积极的看法,因为它更容易阅读(而不是几个不代表不)。

所以这说明如果有任何项目,isset()那么答案是Yes......

if(isset($_GET['new_quiz']) || isset($_GET['view_quiz']) || isset($_GET['alter_quiz'])){
    echo "Yes";
}
else{ echo "No"; }

请注意,我已经更改了周围的YesNo分支。if


推荐阅读