2015-01-27 3 views
-1

에서 나는 || 또는 &&을 사용해야한다는 것을 알고 있지만 이것을 포맷하는 데 올바른 최선의 방법을 찾을 수는 없습니다.두 가지 쿠키 중 하나가 존재하는 경우 PHP

하나 개의 쿠키에 대한 나의 코드 :

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

하지만 사람이 작업 할 수있는 "물건"에 대한 사실 수 있습니다이 루틴의 다른 쿠키를 포함하고 싶습니다.

형식을 지정하는 방법을 모르겠습니다. 이게 뭔가?

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

없음 당신이 경고를 칠 수 있습니다. 'if ((isset ($ _ COOKIE ['mycookie ']) && $ _COOKIE ['mycookie '] == "value1") || (isset ($ _ COOKIE ['mycookie2 ']) && $ _COOKIE [' mycookie2 '] == "value2")) {}'. –

+0

두 번째 코드 블록을 시도하면 구문 오류가 발생합니다 (최소한 대괄호는 일치하지 않으며 대괄호로 인해 기존 대괄호에 액세스하지 않고 새 배열을 만들기 때문에) . 종종 뭔가 효과가 있는지 확인하는 가장 좋은 방법은 시도하는 것입니다 - 여기에 자주 오는 조언을! – halfer

+1

'$ COOKIE' 밑줄이 누락되었습니다. 부분적으로 왜 두 번째가 실패하고 있는지. –

답변

2

당신은 하나에 모두 쓸 수 있습니다 시도 후

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

모든 호출 결과를 결합하려면 함수 외부에 ||을 수행해야합니다.

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

대신 중첩 if 중 하나 개 if 조건을 사용할 수 있습니다. 당신은 확인하기 위해 필요한 경우 모두 다음

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

또는 당신은 당신이 경우 if 문이

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

} 
0

중 하나를 확인해야하는 경우 like this :

(isset() 함수의 OR 문은 작동하지 않습니다)

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

이 될 것입니다 : 심지어

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 중첩을 피하기 위해.

0

시도해보십시오. 그것은 하나 명의 if 성명에서 모든 요구 사항을 입력하지 않습니다 : 위 예제 코드는 MyCookie가 존재하지만 mycookie2이 존재하지 않는 동안 값 1이 아닌 경우

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