我正在尝试使用FatFree框架并尝试使用模板引擎.我使用以下代码渲染模板 –
echo Template::serve('template.PHP');
我面临的问题是,在template.PHP文件中,F3标签被识别,但任何PHP代码都不起作用.例如,如果我在template.PHP文件中有以下代码 –
<?PHP if (F3::get('var') == 'var1') { ?> <span>var1 is present</span> <?PHP } else { ?> <span>var1 not present</span> <?PHP } ?>
这里两个都存在var1,并且不管var的值如何都打印var1.此外,PHP for循环不起作用 – 所以基本上所有的PHP代码都无法正常工作.
但是,如果我使用< F3:check>编写上面的PHP代码,然后一切正常.我们不能在模板中使用PHP代码吗?如果是这种情况,这是一个严重的限制.
我找到了答案,虽然我不喜欢它.
原文链接:https://www.f2er.com/php/240121.html有两个不同的函数,F3 :: render()和Template :: serve()
使用F3 :: render(),您可以评估PHP表达式并使用F3 :: get()来检索变量.据该网站称:“在您的模板中嵌入PHP代码的唯一问题是坚持MVC原则所需的有意识的努力”
Template :: serve()仅用于模板化.这意味着它只是处理模板语言.
所以基本上,是的,它很糟糕,没有意义,你可以在F3 :: render()中评估PHP代码,你不能使用模板变量({{@var}}) – 或者 – 你可以使用模板:: serve(),你只能调用PHP函数,而不是真正评估PHP代码.