smarty中的变量使用

在模板中输出动态数据可以用{},所以容易与css中的标签相互冲突,所以使用{literal}{/literal}标签包起来就不会用模板的解析方式解析,变量的来源有三种,用assign方法赋值,系统保留变量,配置文件中的变量

使用地址栏中的数据,也是$_GET的数据,可以用$smarty.get.变量名 来获取,定义常量可以用$smarty.const.常量名来获取

获取配置文件中的数据,配置文件中的数据格式key=value,一行一条数据,首先在控制页面中引入这个文件,用$smarty->config_dir='';值是配置文件相对于这个控制页面的相对位置,在html页面中{config_load file=''}file值是配置文件相对于这个显示页面的位置,然后用$smarty.config.配置名  进行输出

进行数据运算就在{}标签中直接进行运算

如果有多个相同的值,如果用assign方法进行赋值,就会将之前的重名变量进行重新赋值,之前的值被覆盖,可以用append方法进行赋值,参数和assign一样,如果不存在同名变量,和assign的作用一致,如果存在,就把这个变量变成数组,再将这个值追加最最后的位置

控制页面01.php

<?php
//引入smarty文件
require('../../smarty3/libs/smarty.class.php');

//实例化
$smarty=new Smarty();

// print_r($smarty);调试成功

//配置
//$smarty->template_dir='./temp';
//$smarty->compile_dir='./comp';
$smarty->setTemplateDir('./temp');
$smarty->setCompileDir('./comp');
// 赋值
$smarty->assign('name','张三');

//定义数组,传数组
$arr=array('name'=>'李四','age'=>14);
$smarty->assign('arr',$arr);

//定义常量
define('HEI',8889);

//引入配置文件
$samarty->config_dir='./config.php';

$smarty->display('01.html');

?>

 渲染页面01.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Smarty模板的使用</title>
<style>
{literal}p{
	background:green;
}
{/literal}
</style>
</head>
<body>
下面输出姓名:<br/>
<p>{$name}</p>
下面输出数组中的内容:<br/>
<p>姓名是:{$arr.name},年龄{$arr.age}</p>
接收地址栏的信息<br/>
<p>这是第{$smarty.get.id}号</p>
输出常量的值<br/>
<p>{$smarty.const.HEI}米</p>
引入配置文件<br/>{config_load file='../config.php'}
<p>id是{$smarty.config.id},名字是{$smarty.config.name},uri是{$smarty.config.uri}</p>
</body>
</html>

 配置文件config.php,名字随意起

id=1233
name=你是你谁
uri=当前文件夹
原文地址:https://www.cnblogs.com/lzzhuany/p/4833610.html