2013-08-28 2 views
-1

정말 이상한 구문 문제가 있습니다. 이 작동하지 않는 이유는 누군가가 말해 줄 수 :PHP 논리 연산자

if (! is_single() || ! is_archive())

을하지만은 다음과 같습니다 if (! is_single() || is_archive())

를 내가 얻을 수있는 방법 첫 번째 문이 작동하려면? 미리 감사드립니다.

편집 : 답변이 왔을 때 나는 여전히 질문을 편집하고있었습니다. 어쨌든, 나는 구문을 의미한다고 언급 했어야했다. 나는 두 진술의 논리가 같지 않다는 것을 알고 있었다. 따라서 !을 외부에 배치해야합니다. 고마워.

+0

은 어떻게됩니까 성명서? – aynber

+3

질문에 대답이 명확하지 않습니다. 달성하고자하는 목표는 무엇입니까? 나는 당신이'||'대신'&&'를 필요로한다고 생각한다. –

+0

당신은 무엇을하려 하는가? 우리의 논리를 말로 써보십시오. –

답변

3

! (부정한) 연산자는 PHP에서 precedence입니다.

if (! (is_single() || is_archive())) 

당신이 기대하는대로 작동 얻을 : 당신은 괄호 안에 두 번째 표현을 묶어야합니다 이유입니다.

+0

고맙습니다. 내가 찾고 있었던 것이 었습니다! – charlenemasters

1

사용이

if (!(is_single() || is_archive())) 
0

당신이 코드가 작동하지 않습니다라고 ...

  1. if (! is_single() || ! is_archive())

... 그러나 이것은이다 :

  1. if (! is_single() || is_archive())

하지만 같은 논리는 아닙니다.()

  1. is_single하지 또는 하지 is_archive()

  2. 하지 is_single() 또는 is_archive()는 처음 사용할 때