<分区>
在以前版本的 Smarty 中可以在 Smarty 模板文件中使用 PHP,但现在已弃用。
但是,您仍然可以通过使用向后兼容的包装器来做到这一点。
这使得通过以下操作可以从模板文件中使用 PHP:
{php}echo "Hello World";{/php}
有人知道这可能导致的任何问题吗?
<分区>
在以前版本的 Smarty 中可以在 Smarty 模板文件中使用 PHP,但现在已弃用。
但是,您仍然可以通过使用向后兼容的包装器来做到这一点。
这使得通过以下操作可以从模板文件中使用 PHP:
{php}echo "Hello World";{/php}
有人知道这可能导致的任何问题吗?
最佳答案
为了将已经给出的评论扩展为完整答案,嵌入任意 PHP 代码的问题在于它打破了 PHP 和 Smarty 之间的分离。
由于 Smarty 直接编译为 PHP,所以您在 Smarty 中编写的所有内容都可以用纯 PHP 编写,并且最终可能也可能不具有可读性,例如
<?= $foo ?>
对于 {$foo}
很好<?php if ( $expr ): ?> Hello <?php endif; ?>
对于 {if $expr} Hello {/if}
也不错<?= htmlspecialchars(strtoupper($foo ?: 'Hello')); ?>
对于 {$foo|default:'Hello'|upper|escape:html}
有点难看我看到使用 Smarty 的主要优点(如果使用 {php}
,所有这些基本上都无效):
如果混合使用 Smarty 和 PHP,唯一的好处是 Smarty 语法的那些部分比它们的 PHP 等价物更具可读性,就像我上面展示的修饰符示例。
关于php - 在 Smarty 模板文件中使用 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14877736/