{block}和{include}有什么区别?

时间:2013-01-09 19:59:42

标签: smarty

{block}标记和{include}标记之间的主要区别是什么?我知道它们都用于模板继承,但是一个工作得更快还是允许更大的灵活性?

1 个答案:

答案 0 :(得分:2)

{include}函数只是引用另一个模板文件,其内容应包含在输出中的该点。它与任何类型的继承无关,并且像PHP的include / require和函数调用之间的交叉,因为你可以传入参数,变量可以有本地范围。

{block}功能用于Template Inheritance。虽然可以通过巧妙使用子模板来模拟效果,但基本思想却截然不同。如文档中所述,父模板可以包含多个命名块,子模板可以覆盖其中的任何一个或全部,通过名称引用它们,其余代码直接来自父模板。 / p>

考虑它的一种方法是{include}如果你想要包含在多个页面结构中的内容部分是有用的,而如果你想要许多具有相似结构的页面,模板继承会更合适,但在某些部分有不同的内容。当然,你可能想要两者兼而有之。