1, 变量的分类

① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用。a.php中代码,$smarty->assign(‘str’,’hello world’);在b.tpl中代码,{$str}直接打印出hello world。

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();
$smarty->assign('str','hello world');
$smarty->display('index.tpl');

index.tpl

<html>
<body>
<h1>显示记录</h1>
{$str}
<br/>
</body>
</html>

② 从配置文件中读取变量

在项目下新建config目录,config目录下面新建配置文件my.ini。

my.ini

title = 'smarty显示记录'
bgcolor = 'pink'

  

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty(); $smarty->assign('str','hello world');
$smarty->display('index.tpl');
?>

index.tpl

{config_load file="./config/my.ini"}
<html>
<body bgcolor="{#bgcolor#}">
<h1>显示记录</h1>
{#title#}
<br/>
</body>
</html>

  页面打印结果

在建立smarty对象后,可以指定配置文件路径,tpl中直接引用即可。

index.php修改为如下样式:

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();
$smarty->config_dir = './config';
$smarty->assign('str','hello world');
$smarty->display('index.tpl');
?>

index.tpl样式如下:

{config_load file="my.ini"}
<html>
<body bgcolor="{#bgcolor#}">
<h1>显示记录</h1>
{#title#}
<br/>
</body>
</html>

③ Smarty保留变量,在tpl中直接获取get、post、server、session变量。我们通常是在php中获取这些变量,再通过smarty的assign属性发送给tpl。现在通过smarty的保留变量可以直接tpl中获取这些变量,当然我们不提倡这么做。

login.php跳转到index.php,index.php通过smarty模板显示。

login.php

<a href="index.php?name=hello world& age=20">新页面</a>

a)  旧方式

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty(); $smarty->assign('name',$_GET['name']);
$smarty->assign('age',$_GET['age']);
$smarty->display('index.tpl');

index.tpl

<html>
<body bgcolor="pink">
<h1>显示记录</h1>
{$name}<br/>
{$age}
<br/>
</body>
</html>

b  新方式

index.php

<?php
require_once "./libs/Smarty.class.php";
$smarty = new Smarty();
$smarty->display('index.tpl');
?>

index.tpl

<html>
<body bgcolor="pink">
<h1>显示记录</h1>
{$smarty.get.name}<br/>
{$smarty.get.age}<br/> </body>
</html>

  两者输出结果一样,建议使用旧的方式。

2,在模板文件中对引用的变量可以进行数学运算,但不能使用()改变运算的次序。

Smarty的变量调节器,就是操作变量的函数,在tpl中引用的方式{变量调节器|字符串},比如{$title|capitalize}字符串每个单词首字母大写。我们可以自建函数,操作变量。

三,Smarty模板技术/引擎——变量操作(2)的更多相关文章

  1. 二 ,Smarty模板技术/引擎——变量操作(1)

    1,基本变量 $smarty->assign('data1',3); $smarty->assign('data2',3.45); $smarty->assign('data3',' ...

  2. 一,Smarty模板技术/引擎——简介

    Smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使PHP程序员与美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改 ...

  3. 五,Smarty模板技术/引擎——自定义函数机制

    自建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用: 示例:使用smarty自定义函数的机制,编写一个函数myfun1,通 ...

  4. 四,Smarty模板技术/引擎-----内建函数

    内建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用. PHP的自建函数很多,讲解下<foreach>和< ...

  5. Smarty模板技术学习

    模板引擎技术:使得php代码和html代码分离的技术就称为"模板引擎技术" 自定义smarty模板技术实现 <?php //迷你smarty原理 class MiniSmar ...

  6. Smarty模板技术学习(二)

    本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...

  7. smarty模板技术

    一.什么是smarty?smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用php程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美 ...

  8. smarty详细使用教程(韩顺平smarty模板技术笔记)

    MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...

  9. Smarty模板技术之foreach遍历数组实例全面讲解

    一.item属性用法 <?php $arr = array(, , ); $smarty->assign('testarrg', $arr); ?> 用Smarty中的foreach ...

随机推荐

  1. java核心知识点 --- 线程池ThreadPool

    线程池是多线程学习中需要重点掌握的. 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统交互.在这种情形下,使用线程池可以很好的提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考 ...

  2. Elasticsearch前沿:ES 5.x改进详解与ES6展望

    转:http://www.dataguru.cn/article-11094-1.html 曾勇(Medcl),Elastic 工程师与布道师,2015 年加入 Elastic 公司.加入 Elast ...

  3. 《Android Studio实用指南》4.27 使用演示模式

    本文节选自<Android Studio实用指南> 第4章第27节 作者: 毕小朋 目前本书已上传到百度阅读, 在百度中搜索[Anroid Studio实用指南]便可以找到本书. 什么是演 ...

  4. 开发微信小程序入门教程,含破解工具

    2016年09月21日晚 微信发不了微信“小程序”的内测版,一时间整个互联网都炸了锅.个大新闻.论坛都在讨论这个事情. 作为互联网的一猿,我们怎能不紧跟时代的脚步.于是第二天上午也对微信发布的“小程序 ...

  5. Java故障分析基础

    JVM基础 垃圾回收器 GC日志 jps, jinfo命令 jmap, jhat命令 jstat命令 线程dump jvisualVM / jconsole MAT(Memory Analyzer t ...

  6. winfrom在图片上实现绘制

    在控件加载入图片的基础上进行绘制内容 添加文字 首先就是要确定输入的文字,还有文字的样式. 文字的样式用到了FontDialog控件,获取文字呢,就放个textbox就可以了.如果在输入文字的显示展示 ...

  7. MySQL 时间函数加减计算

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now() mysql> select now();+———————+| now() |+ ...

  8. Oracle-属性查询

    1. 查询表的部分字段属性 select t.*, c.comments from user_tab_columns t, user_col_comments c where t.table_name ...

  9. 2-R型聚类

    将相似的属性聚合在一起 clc, clear; % a = load('E:\a-建模\<数学建模算法与应用>课件资源\数学建模算法与应用\程序及数据\10第10章\gj.txt'); a ...

  10. Solidity智能合约调用智能合约

    来源:https://medium.com/@blockchain101/calling-the-function-of-another-contract-in-solidity-f9edfa921f ...