如果存在两个cookie中的任何一个,请使用PHP执行操作

如果存在两个cookie中的任何一个,请使用PHP执行操作,php,if-statement,cookies,Php,If Statement,Cookies,我知道需要使用|或&&,但我无法找到正确或最佳的格式 我的一个cookie代码: if(isset($_COOKIE['mycookie'])) { if($_COOKIE['mycookie']=="value1") { // do some stuff } } 但是我想在这个例程中加入另一个cookie,其中任何一个都可以是真的,这样“东西”才能工作 我只是不知道如何格式化这个。是这样的吗 if(isset($_COOKIE['mycookie'] || ['myco

我知道需要使用
|
&&
,但我无法找到正确或最佳的格式

我的一个cookie代码:

if(isset($_COOKIE['mycookie'])) { 
 if($_COOKIE['mycookie']=="value1") { 
 // do some stuff 
   } 
 }
但是我想在这个例程中加入另一个cookie,其中任何一个都可以是真的,这样“东西”才能工作

我只是不知道如何格式化这个。是这样的吗

 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']) || 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( (isset($_COOKIE['mycookie'] && $_COOKIE['mycookie']=="value1") || (isset($_COOKIE['mycookie2']) && $_COOKIE['mycookie2']=="value2") ) { 
    // do some stuff 
}

不,如果mycokie存在但不是value1,而mycokie2不存在,则可能会出现警告。尝试类似于,
if((isset($\u COOKIE['mycookie'])&$\u COOKIE['mycookie']==“value1”)| |(isset($\u COOKIE['mycookie2'])&$\u COOKIE['mycookie2']==“value2”){}
。如果尝试第二段代码,您会发现它会导致语法错误(至少因为方括号不匹配,也因为方括号本身创建了一个新数组,而不是访问一个现有数组)。通常,查看某个数组是否有效的最佳方法是尝试它-这里通常会给出建议!
$COOKIE
缺少下划线。第二个数组失败的部分原因。
if( (isset($_COOKIE['mycookie'] && $_COOKIE['mycookie']=="value1") || (isset($_COOKIE['mycookie2']) && $_COOKIE['mycookie2']=="value2") ) { 
    // do some stuff 
}