2013-10-24 2 views
2

?차이 .. END

역사적으로 나는 항상 후자를 사용했지만 이전 상점을 항상 사용 해왔다는 새로운 상점에 와서 차이가 무엇인지 궁금해하고있었습니다.

답변

1

MACRO 블록은 실제로 함수가 호출 될 때마다 다시 평가되고 전달 된 변수는 매크로에 로컬입니다. 명명 된 블록은 정적이거나 PROCESS 또는 INCLUDE을 통해 호출되며 변수 범위에 대한 일반적인주의 사항이 적용됩니다.

MACRO foo (arg1, arg2) BLOCK; 
    ... do something with arg1 and arg2 
END; 

... 

Foo is a [% foo(bar,baz) %] 

BLOCK foo 
    ... do something with arg1 and arg2 
END; 

... 

Foo is a [% PROCESS foo arg1=bar arg2=baz %] 

길고도 짧은 이야기 대, MACRO 구문 외모와 함수 호출처럼 동작 특히 코드를 덜 장황 많은입니다.

이것은 fairly well documented in the fine manual입니다.