XE 템플릿에서 {@로 시작한 PHP 코드 블럭 안에서는 { } 괄호를 쓸 수가 없죠.

왜냐면 }가 용도에서 겹쳐서 충돌하기 때문입니다.

그래서 if 문 다음에 반드시 한줄만 코드를 배치할 수 있는등 꽤 제한이 심한데

이걸 해결하는 방법이 있더군요.

php 원래 문법 중에서 이런게 있었습니다.

 

if ( ... ):

 ...

elseif:

 ...

else:

 ....

endif

 

신기한 문법이죠?

이게 원래 PHP도 HTML 템플릿으로 쓰라고 만든 언어라서

<?php ?>  이거 사이에 코드를 끼워서 쓰게 되어있잖습니까?

그때 { }가 있으면 불편하니까 추가로 만든 대체 문법이라고 합니다.

{ } 없이 블록을 쓸 수 있게 해주는거죠.

이 문법이 for나 while 등에도 되는지는 잘 모르겠습니다. 되면 좋을텐데...

 

http://daplus.net/php-if-%EC%99%80-if-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-endif/

  • profile

    for($i = 0;$i < 10;$i++):
    ~
    endfor;

    foreach($array as $value):
    ~
    endforeach;

    while($i < 10):
    ~
    endwhile;

    당연히 있습니다.

    name():

    body;

    endname;

     

    정도 규칙으로 볼수 있겠습니다.