php 'and' 구문을 잘 모르겠습니다.

php 'and' 구문을 잘 모르겠습니다.

QA

php 'and' 구문을 잘 모르겠습니다.

본문

안녕하세요


<?php 
if ( is_page(1) ) {
get_header( 'add' );
} elseif ( is_page(2) ) {
get_header( 'add' );
} elseif ( is_page(3) ) {
get_header( 'add' );
} else {
get_header();
}  ?>

 

위 구문에서 반복되는 get_header 를 없애고

 


<?php 
if ( is_page(1 && 2 && 3) ) {
get_header( 'add' );
} else {
get_header();
}  ?>

 

이렇게 했는데 잘 안되네요

and 도 안되구요

도움 부탁드립니다.

 

ps. and 와 && 차이점이 뭔지 모르겠습니다

이 질문에 댓글 쓰기 :

답변 4

&& = and, || = or 이고요

 

A and B 는 

A

 결과

 true

 true

 true

 true

 false

 false 

  false

true 

 false 

  false

  false

 false 

A or B 는

 A

 결과

 true

 true

true 

 true

false 

 true

 false

true 

 true

 false

 false

false 

 

is_page 라는 함수는 사용자가 정의한 함수인 것으로 보이고 인자 값을 받아서 어떤 처리를 한다음 

true 나 false 을 리턴해주는 것일텐데요.

 

if ( is_page(1 or or 3) ) { 이건은 잘못된 방법입니다. 

인자부분에 저렇게 비교 연산자를 쓰게 되면 인자로 넘어가는건 비교한 결과가 넘어갑니다. 인자로 true 나 false 값이 넘어가는것이죠.


&& , || 둘다 안된다고 하는데 다른부분에서 오류가 있는것은 아닌지?


<?php
if ( is_page(1) || is_page(2) || is_page(3) ) {
  get_header( 'add' );
}else {
  get_header();
}
?>
 

코드를 위와 같이 수정하시면 됩니다. && 랑 AND는 같은 역활을 합니다. 

is_page()가 몇개의 파라미터를 가지고 있냐에 문제이니

if ( is_page(1 && 2 && 3) ) 이렇게 표현할 수는 없고 


블랙캣77님 표현처럼

if ( is_page(1) || is_page(2) || is_page(3) ) 이렇게 표현해야 가능하겠죠.


하지만 안된다면 이 표현 외에서 문제가 있기 때문으로 보입니다.

if문을 다음처럼 사용해보세요. 

if ( is_page(1 or 2 or 3) ) {


and,&& : 조건이 모두 참일경우에만
or,|| : 조건중 하나만 참이더라도
* php4에서는 &&나 || 대신 and,or을 사용하세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,536 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT