Smarty php .tpl - 调用函数

Smarty php .tpl - Calling a Function

我有点聪明php代码:

在我的 sample.tpl 文件中:

{require_once(test.php)}
{php}
echo test();
{/php}

在我的 test.php 文件中:

<?php
function test(){
  return "hi";
}
?>

出于某种原因,这会破坏整个模板并且不起作用。另请注意 {php} echo "hi" {/php} 工作正常。

最终,我只需要 运行 代码附加到一个按钮。如果在 smarty 中有一种简单的方法(例如 if 语句或其他),请告诉我。

Smarty中没有require_once()
您可能需要将其移至 PHP 区块:

{php}
require_once("test.php");
echo test();
{/php}

或者,如果您使用的是 Smarty V3,函数和 {php} 块的使用可能会受到安全设置的限制:https://www.smarty.net/docsv2/en/variable.security.tpl

您通常不需要在 Smarty 中使用 requirerequire_once,在调用脚本(加载模板)范围内可用的函数也应该在模板中可用...