变量赋值 Assign

变量赋值 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」篇)。
添加日期: