묻고답하기
문법 안에서 if 구문 어떻게 사용하나요
2015.07.27 21:20
관리자가 아닐 경우 추가하려고 하는데 저 구문은 아니라고 나오네요.
{@ } 이런 구문 안에서 if 문은 어떻게 하나요
댓글 7
-
YJSoft
2015.07.27 22:27
-
이온디
2015.07.27 23:29
{@
$a = 2;
$b = 3;if(!$a){
echo "adsf";
}
}단순 이렇게만 적어도
Error Parsing Template - syntax error, unexpected $end in template file ./layouts/eond_on/layout.html
이런 식으로 오류가 나서요 ㅠ
-
이온디
2015.07.27 23:36
https://www.xpressengine.com/tip/22931124
이렇게 작성하는 게 있었군요. 이렇게 : 을 찍는게 원래 php에서도 이렇게 사용하는 방법이 있는 건가요?
xe만 이렇게 가능한 문법인가요;;
php책에서는 위에 댓글처럼 되어있는데 xe에서는 왜 오류일까요;
-
YJSoft
2015.07.28 13:32
닫는 중괄호가 {@ } 문법의 닫는 중괄호로 인식되기 때문입니다.
-
이온디
2015.07.28 14:58
그럼 if문은 php에서 쓸 때처럼 하면 안되고 무조건 : 이런 식으로 xe에서는 가능한가보군요. ㅎ;
-
숭숭군
2015.07.28 16:24
php파일에서는 동일하게하면됩니다..
보충설명해드리면
{@ <-- php문법을 시작합니다
} <-- php문법을 종료합니다.
이런의미인데.. 중간에 if문을 넣어버리면 if문 종료를 선언하는것이
php문법을 종료하는것으로 오인할수 있기때문에 중괄호 대신 : (콜론) 을 사용하도록 한 듯하네요.
{@ $a = 1; if($a > 1) { } //이부분에서 php구문이 종료된걸로 오인. } //실제 php구문 종료 지점.
-
한꼬마
2015.07.29 22:16
<!--@if($cond)-->
$cond_job = TRUE;
<!--@endif-->으로 코딩하시는게 가장 정확할겁니다.
{@ }는 그냥 그대로 <?php ?>로 해석되므로(물론 변수 등이 $__Context 하위 변수로 변환을 거치기는 합니다) 그냥 if문을 사용하시면 됩니다.(@ 붙이실 필요 없습니다) 혹은 아래와 같은 방법을 사용할 수도 있습니다.
{@
$first_val = ~~;
}
<!--@if($cond)-->
$cond_job = TRUE;
<!--@endif-->
{@
$second_val = ~~;
}