如果存在两个 cookie 中的任何一个,则在 PHP 中执行某些操作

If either of two cookies exist do something, in PHP

我知道需要使用 ||&&,但我想不出正确或最佳的格式化方式。

我的一个 cookie 代码:

if(isset($_COOKIE['mycookie'])) { 
 if($_COOKIE['mycookie']=="value1") { 
 // do some stuff 
   } 
 }

但我想在此例程中包含另一个 cookie,其中任何一个都可以使 "stuff" 正常工作。

我只是不确定如何格式化它。是这样的吗?

 if(isset($_COOKIE['mycookie'] || ['mycookie2')) {
 if($_COOKIE['mycookie']=="value1" || $COOKIE['mycookie2']=="value2") { 
 // do some stuff 
   } 
 }

您需要在函数外部执行 ||,以合并所有调用的结果。

if (isset($_COOKIE['mycookie']) || isset($_COOKIE['mycookie2'])) {
    // do some stuff
}

您可以使用一个 if 条件而不是嵌套 if。如果您需要同时验证两者,则

if(isset($_COOKIE['mycookie'], $_COOKIE['mycookie2']) && ($_COOKIE['mycookie'] == "value1" && $_COOKIE['mycookie2']=="value2")) {
    // do some stuff 
}

或者如果您必须验证其中之一,那么

if((isset($_COOKIE['mycookie']) && $_COOKIE['mycookie']=="value1") || (isset($_COOKIE['mycookie2']) && $_COOKIE['mycookie2'] == "value2") ) {
    // do some stuff 
}

试试这个

if((isset($_COOKIE['mycookie']) && $_COOKIE['mycookie']=="value1")
    || 9isset($_COOKIE['mycookie2']) && $_COOKIE['mycookie2'] =="value2" )) { 
 // do some stuff 

 }

如果你想这样,你可以把所有的都写在一个 if 语句中:

(isset() 函数中的 OR 语句不起作用)

if ( (isset($_COOKIE['mycookie']) && $_COOKIE['mycookie'] == "value1") || (isset($_COOKIE['mycookie2']) && $_COOKIE['mycookie2'] == "value2") )

它将是:

if (isset($_COOKIE['mycookie']) || isset($_COOKIE['mycookie2'])) {
   if ($_COOKIE['mycookie'] == "value1" || $_COOKIE['mycookie2'] == "value2") { 
     // do some stuff 
   } 
 }

甚至:

if ((isset($_COOKIE['mycookie']) || isset($_COOKIE['mycookie2') && ($_COOKIE['mycookie'] == "value1" || $_COOKIE['mycookie2'] == "value2")) { 
   // do some stuff 
 }

避免嵌套if.

试试这个。它将所有要求放在一个 if 语句中:

if( (isset($_COOKIE['mycookie'] && $_COOKIE['mycookie']=="value1") || (isset($_COOKIE['mycookie2']) && $_COOKIE['mycookie2']=="value2") ) { 
    // do some stuff 
}