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 |
B |
결과 |
true |
true |
true |
true |
false |
false |
false |
true |
false |
false |
false |
false |
A or B 는
A |
B |
결과 |
true |
true |
true |
true |
false |
true |
false |
true |
true |
false |
false |
false |
is_page 라는 함수는 사용자가 정의한 함수인 것으로 보이고 인자 값을 받아서 어떤 처리를 한다음
true 나 false 을 리턴해주는 것일텐데요.
if
( is_page(1
or
2
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을 사용하세요.