Smarty 是什么?
为什么使用它?
用例和工作流
语法比较
模板继承
最佳实践
速成课程
    {include_php} 已从 Smarty 中废弃,请使用已注册的插件妥善隔离演示和应用程序代码。从 Smarty 3.1 起,只能从SmartyBC获得 {include_php} 标记。
| 属性名称 | 类型 | 是否需要 | 默认值 | 说明 | 
|---|---|---|---|---|
| file | 字符串 | 是 | 无 | 要作为绝对路径包含的 php 文件的名称 | 
| once | 布尔值 | 否 | TRUE | 如果多次包含 php 文件,是否可以多次包含 | 
| assign | 字符串 | 否 | 无 | 将 include_php 输出分配到的变量的名称 | 
选项标志
| 名称 | 说明 | 
|---|---|
| nocache | 禁用已包含 PHP 脚本的缓存 | 
  {include_php} 标记用于在你的模板中包含一个 php 脚本。属性 file 的路径可以是绝对路径,也可以是相对于$trusted_dir的相对路径。如果启用了安全性,那么该脚本必须位于安全策略的$trusted_dir 路径中。有关详细信息,请参阅安全性部分。
默认情况下,即使在模板中多次调用 php 文件,也只会包含一次。你可以使用once 属性指定每次都应该包含。将 once 设置为 FALSE 将在模板中每次包含 php 脚本时都包含它。
你可以选择传递assign 属性,该属性将指定一个模板变量名称,{include_php} 的输出将被分配给该名称,而不是显示输出。
smarty 对象可以作为$_smarty_tpl->smarty 在你包含的 PHP 脚本中使用。
示例 7.55. 函数 {include_php}
load_nav.php 文件
<?php
// load in variables from a mysql db and assign them to the template
require_once('database.class.php');
$db = new Db();
$db->query('select url, name from navigation order by name');
$this->assign('navigation', $db->getRows());
?>
  
模板位置
{* absolute path, or relative to $trusted_dir *}
{include_php file='/path/to/load_nav.php'}
{include_php '/path/to/load_nav.php'}             {* short-hand *}
{foreach item='nav' from=$navigation}
  <a href="{$nav.url}">{$nav.name}</a><br />
{/foreach}