变量赋值 Assign
{assign} 在模板内部定义 / 修改一个变量,写入当前渲染作用域。
一、语法
{assign var="变量名" value="变量值"}
| 属性 | 必需 | 说明 |
|---|---|---|
var |
是 | 变量名 |
value |
是 | 变量值(字符串字面量、变量、表达式均可) |
二、示例
{assign var="page_title" value="首页"}
{assign var="user_level" value=$user.level}
{assign var="total_price" value=$price * $count}
<h1>{$page_title}</h1>
三、编译行为
{assign} 编译为 $ctx->set(var, value),把值写入当前作用域的 $ctx->vars。写入后,同一模板(及后续 {include} 的子模板)可用 {$变量名} 读取。
四、value 支持插值
value 为双引号字符串时支持变量插值(见「表达式运算 Expressions」篇):
{assign var="greeting" value="你好,$name"}
{assign var="greeting2" value="你好,`$user.name`"}
{assign var="raw" value='字面量 $name 不插值'}
- 双引号:插值
$name;复杂变量用反引号`$user.name`; - 单引号:不插值,按字面输出。
五、注意事项
{assign}定义的是模板层临时变量,适合拼装展示用的中间值;真正的业务数据应在控制器 /..from_theme.php里装配后注入。- 在
{include}的子模板里{assign}的变量不会回流到父模板(子作用域隔离,见「模板包含 Include」篇)。