Php 如果带or和boolean from函数的方括号不起作用,则此函数很简单
我是PHP新手,没有运行以下简单代码:Php 如果带or和boolean from函数的方括号不起作用,则此函数很简单,php,Php,我是PHP新手,没有运行以下简单代码: if( !isset( $_COOKIE["itsmejoe"]) || !isBot() ){ echo "yes"; }else{ echo "no"; }; function isBot(){ return true; } 如果我将isBot()输出从true更改为false,它将给出yes或no。 在我的例子中,总是有一个肯定的答案。 有什么问题吗?如前所述,当未设置$\u COOKIE[“itsmejoe”]或isB
if( !isset( $_COOKIE["itsmejoe"]) || !isBot() ){
echo "yes";
}else{
echo "no";
};
function isBot(){
return true;
}
如果我将isBot()输出从true更改为false,它将给出yes或no。
在我的例子中,总是有一个肯定的答案。
有什么问题吗?如前所述,当未设置
$\u COOKIE[“itsmejoe”]
或isBot()
返回false时,您传递的是true
当您将
isBot()
的输出更改为false时,它将始终返回“yes”。当使用“!”运算符时,这意味着如果其中一条语句为false,则整个语句为true。在我看来,这是一种糟糕的编码实践,因为它过于复杂,没有增加任何价值。使陈述更简单,以便在事情不起作用时易于理解 我假设您想要的是,如果设置了cookie,它会说是,除非isBot()
为true,如果未设置cookie,则会说“否”,无论isBot()
是否为true。如果是这样的话,我认为它简化了使用,而不是OR
if( isset( $_COOKIE["itsmejoe"]) $$ !isBot() ){
// requirements for "yes": cookie is set and isBot is false
echo "yes";
} else {
echo "no";
};
谢谢你的回答。我需要的是,如果isBot为true,它将显示“no”解除对cookie的依赖;函数isBot(){return true;}@hamburger在这种情况下,用AND替换OR运算符。将| |替换为&&它将按照您的意愿工作。如果isBot为true,则显示“否”(与cookie无关)