1
이 TT 명령 (순서대로 실행) 고려 :Template Toolkit에서 문 수정자는 어떻게 작동합니까?
[% x = "foo" %] # x == "foo"
[% x = "bar" IF 1 %] # x == "bar"
[% x = "bar" IF 0 %] # x == ""
왜 3 문에서 빈 문자열로 할당받을 x
는 무엇입니까?
이 TT 명령 (순서대로 실행) 고려 :Template Toolkit에서 문 수정자는 어떻게 작동합니까?
[% x = "foo" %] # x == "foo"
[% x = "bar" IF 1 %] # x == "bar"
[% x = "bar" IF 0 %] # x == ""
왜 3 문에서 빈 문자열로 할당받을 x
는 무엇입니까?
http://template-toolkit.org/docs/manual/Syntax.html#section_Capturing_Block_Output
주 부작용 표기와 함께 구문을 사용하여 하나 개의 중요한주의. 이 경우
[% var = 'value' IF some_condition %] # does not work
이 지시문은 (명확성을 위해 추가 간격)
[% var = IF some_condition %]
value
[% END %]
보다는
[% IF some_condition %]
[% var = 'value' %]
[% END %]
로 해석됩니다 다음 지시어는 예상 할 수대로 작동하지 않습니다 변수는 IF 블록의 출력에 할당되며, 'true'인 경우 'value'를 반환하지만 false 인 경우에는 아무것도 반환하지 않습니다. 즉, 다음 지시어는 항상 'var'을 지울 것입니다.
[% var = 'value' IF 0 %]
이 예상되는 동작을 달성하기 위해, 지시자는 다음과 같이 기록한다 :
[% SET var = 'value' IF some_condition %]
감사합니다, 어떻게 든 완전히 문서에이 놓친 :) –