我有一个函数说
[#function func a]
[@print_name "john doe"/]
[/#function]
我有一个宏说
[#macro print_name name]
${name}
[/#macro]
从函数调用宏是否有效,是否会在页面中打印任何内容?
答案 0 :(得分:3)
您可以这样做,但如果您只是调用宏,则会以静默方式删除宏输出。通常,如果您需要从函数调用一个宏并将其输出作为函数结果返回,那么就有一些东西在那里。 (从宏调用函数是常见的,但相反的是不是。)但它可行:
[#function func a]
[#local r][@print_name "john doe"/][/#local]
[#return r]
[/#function]
请注意,如果您使用带有转义输出格式(如HTML)的2.3.24的自动转义功能,则返回值不会是字符串。然后它将是"标记输出"相反(防止双重逃逸)。