PHP Smarty 模板 变量访问 韩顺平 讲解

定界符重新定义 预防在模板中有js css 代码时 smarty模板引擎解析出现错误!

注意点:

tpl页面模板中参数和值 在 php页面中对应关系。

例如

PHP页面代码

class Dog{
    var $arrT;
        function __construct($arr){
        $this->arrT=$arr;
    }
}
//一维索引数组
$arrA=array(‘beijing‘,‘shanghai‘,‘tianjin‘);
//实例化对象
$dog=new Dog($arrA);
$dog->master=$master;
$smarty->assign("dog",$dog);
$smarty->display("hello.tpl");

TPL页面代码
<{$dog->arrT.city1}>

在PHP页面中Dog类中的成员变量arrT 对应 TPL页面arrT

Dog类中构造方法形式参数$arr

function __construct($arr){
        $this->arrT=$arr;
    }

定义要传入Dog类参数中的实参$arrA         $arrA=array(‘beijing‘,‘shanghai‘,‘tianjin‘);

在实例化对象时传入实参$arrA                   $dog=new Dog($arrA);

//创建smarty对象
require_once ‘./libs/Smarty.class.php‘;
$smarty=new Smarty();
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>";

布尔型boolean

php页面

$smarty->assign("yang_boolean",true);

tpl页面

<{$yang_string}>

浏览器

1

整型integer

php页面

$smarty->assign("yang_int",567);

tpl页面

<{$yang_int}>

浏览器

567

浮点型float

php页面

$smarty->assign("yang_float",56.7);

tpl页面

<{$yang_float}>

浏览器

56.7

字符串string

php页面

$smarty->assign("yang_string","i come from China");

tpl页面

<{$yang_string}>

浏览器

i come from China

数组array  一维索引数组

php页面

$arr=array(‘beijing‘,‘shanghai‘,‘tianjin‘);
$smarty->assign("arr1",$arr);

tpl页面

<{$arr1[0]}>||<{$arr1[1]}>||<{$arr1[2]}>

浏览器

beijing||shanghai||tianjin

数组array  一维索引数组

php页面

$arr2=array(
    ‘city1‘=>‘beijing‘,  ‘city2‘=>‘上海‘,  ‘city3‘=>‘天津‘
);
$smarty->assign("arr2",$arr2);

tpl页面

<{$arr2.city1}>||<{$arr2.city2}>||<{$arr2.city3}>

浏览器

beijing||上海||天津||

数组array  二维数组 (第一层为索引数组,第二层为索引数组)

php页面

$arr3=array(
    array("北京","上海","天津"),
    array("宋江","李逵","卢俊义")
);
$smarty->assign("arr3",$arr3);

tpl页面

<{$arr3[0][0]}>||<{$arr3[0][1]}>||<{$arr3[0][2]}>||<{$arr3[1][0]}>||<{$arr3[1][1]}>||<{$arr3[1][2]}>

浏览器

北京||上海||天津||宋江||李逵||卢俊义

数组array  二维数组 (第一层为索引数组,第二层为关联数组)

php页面

//关联二维数组
$arr4=array(
    array(
     "id"=>"a001",
     "name"=>"yang",
     "age"=>"33"        
    ),
    array(
        "id"=>"a002",
        "name"=>"wang",
        "age"=>"23"
    )
);
$smarty->assign("arr4",$arr4);

tpl页面

<{$arr4[0].id}>||<{$arr4[0].name}>||<{$arr4[0].age}>||<{$arr4[1].id}>||<{$arr4[1].name}>||<{$arr4[1].age}>

浏览器

a001||yang||33||a002||wang||23

数组array  二维数组 (第一层为关联数组,第二层为关联数组)

php页面

$arr5=array(
    "emp1"=>array(
        "id"=>"a001",
        "name"=>"yang",
        "age"=>"33"
    ),
    "emp2"=>array(
        "id"=>"a002",
        "name"=>"wang",
        "age"=>"23"
    )
);
$smarty->assign("arr5",$arr5);

tpl页面

<{$arr5.emp1.id}>||<{$arr5.emp1.name}>||<{$arr5.emp1.age}>||<{$arr5.emp2.id}>||<{$arr5.emp2.name}>||<{$arr5.emp2.age}>

浏览器

a001||yang||33||a002||wang||23

数组array  二维数组 (第一层为关联数组,第二层为索引数组)

php页面

$arr6=array(
    "emp1"=>array(
       "a001","yang", "33"
    ),
    "emp2"=>array(
      "a002","wang", "23"
    )
);
$smarty->assign("arr6",$arr6);

tpl页面

<{$arr6.emp1[0]}>||<{$arr6.emp1[1]}>||<{$arr6.emp1[2]}>||<{$arr6.emp2[0]}>||<{$arr6.emp2[1]}>||<{$arr6.emp2[2]}>

浏览器

a001||yang||33||a002||wang||23

对象object

php页面

class Dog{
    var $name;//var是公开变量
    var $age;
    var $color;
    var $arrT;
    var $arr2;
    var $master;//小狗主人
    function __construct($name,$age,$color,$arr,$arr2){
        $this->name=$name;
        $this->age=$age;
        $this->color=$color;
        $this->arrT=$arr;
        $this->arr2=$arr2;
    }
}
//一维索引数组
$arrA=array(‘beijing‘,‘shanghai‘,‘tianjin‘);
//一维关联数组
$arrB=array(
    ‘city1‘=>‘beijing‘,  ‘city2‘=>‘上海‘,  ‘city3‘=>‘天津‘
);

$arrC=array(
    array(
        "id"=>"a001",
        "name"=>"yang",
        "age"=>"33"
    ),
    array(
        "id"=>"a002",
        "name"=>"wang",
        "age"=>"23"
    )
);
//对象的分配
class Master{
    var $name;
    var $address;
}
$master=new Master();
$master->name="津沙港湾";
$master->address="厦门";
//实例化对象
$dog=new Dog("小明",5,"红色",$arrA,$arrC);
$dog->master=$master;
$smarty->assign("dog",$dog);
$smarty->display("hello.tpl");

tpl页面(对象成员,对象中一维索引数组,对象中二维数组,对象中对象的属性)

<{$dog->name}>||<{$dog->age}>||<{$dog->color}>
<{$dog->arrT[1]}>
<{$dog->arr2[0].name}>
<{$dog->master->name}>

浏览器

小明||5||红色
shanghai
yang
津沙港湾

php页面 (对象中参数传入是一维关联数组$arrB)

$arrB=array(
    ‘city1‘=>‘beijing‘,  ‘city2‘=>‘上海‘,  ‘city3‘=>‘天津‘
);
$dog=new Dog("小明",5,"红色",$arrB,$arrC);

tpl页面(对象中一维关联数组)

<{$dog->arrT.city1}>

浏览器

beijing
时间: 2024-10-10 16:51:12

PHP Smarty 模板 变量访问 韩顺平 讲解的相关文章

Smarty模板变量调节器

Smarty模板变量调节器用法 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理文本,语法方式如下: {$var|modifier1|modifier2|modifier3|…} 说明:1.不管应用了多少个函数,都应该以|来进行分离. 说明:2.参数用":"分开,如: {$str|truncate:40:"..."}//截取字符串长度为40,并以.

(韩顺平讲解)pl/sql编程(二)

一.pl/sql进阶-控制结构 pl/sql中提供了三种条件分支语句 if -- then, if --then---else, if---then---elsif---else (1)简单的条件判断 if – then 问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%. Sql代码 1. create or replace procedure sp_pro6(spName varchar2) is 2. --定义 3. v_sal emp.sal%

Smarty模板中使用get、post、request、cookies、session变量的方法

一.在模板中访问页面请求变量 我 们可以在PHP脚本中,通过超级全局数组$_GET.$_POST.$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通 过$_COOKIE或$_SESSION在多个脚本之间跟踪变量,或是通过$_ENV和$_SERVER获取系统环境变量.如果在模板中需要这些数组,可 以调用Smarty对象中的assign()方法分配给模板.但在Smarty模板中,直接就可以通过{$smarty}保留变量访问这些页面请求变量. 在模板中使用的示例如下所示: PHP代码

smarty模板中获取页面参数

{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP中的常量.从配置文件中读取变量等.该保留变量中的部分访问介绍如下. 1.在模板中访问页面请求变量 我们可以在PHP脚本中,通过超级全局数组$_GET.$_POST.$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通过$_COOKIE或$_SESSION在多个脚本之间跟踪变量,或是通

SMARTY模板中如何使用get,post,request,cookies,session,serv

{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中的常量.从配置文件中读取变量等. 1.在模板中访问页面请求变量 我 们可以在PHP脚本中,通过超级全局数组$_GET.$_POST.$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通 过$_COOKIE或$_SESSION在多个脚本之间跟踪变量,或是通过$_ENV和$_SERVER

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

MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模板文件templates_c 存放编译后的文件再创建初始化文件smarty.ini.php 注意事项:1.替换变量的标识分隔符一般使用<{}>改动分隔符的两个方法:1.改源码:Smarty.class.php $left_delimiter 不推荐2.动态修改:$Smarty->left_d

PHP Smarty 模板 读取配置文件变量

配置文件 预备知识 可以让设计者将全局的模板变量以文件形式管理起来. 其中一个例子是管理模板的颜色值: 通常如果你需要从程序中更改颜色主题,那么你需要找到每个模板文件, 并且修改它们的颜色值. 通过配置文件,颜色值被统一放置到配置文件内,你只需要修改这个文件即可. # global variables pageTitle = "Main Menu" bodyBgColor = #000000 tableBgColor = #000000 rowBgColor = #00ff00 [Cu

[smarty] 在smarty模板中使用smarty变量初始化 javascript 变量的问题

// 总结:// 1/ 在smarty 模板文件中,使用从php中assign过来的smarty变量,一定需要使用双引号或单引号来括住smarty变量,如:var title="<!--{$title}-->";// 2/ 如果不使用引号括住,在smarty变量值为字符串的情况下,那么该字符串在javascript中会被作为javascript变量来解释,所以就会产生错误.// 3/ 变量值是数字,那么则不会产生错误// tpl 文件 <script> if(n

韩顺平dedecms讲解上课记录

感谢韩顺平: 如何打开php的gd库,通过php设置->php扩展-->phpdb库;打上勾就行: dede存在四张十分重要的表,channeltype,模型表最原始的发源arctype:每条记录是一个栏目是发源表2 archives:内容主表是:是发源表3属于一个文章或者电影的主要内容信息 addonarticle:这是附加表,就是每篇文章,或者电影都有自己特色信息在这里填写 模型的具体体现就是主表和附加表,主表是不能动的,所以在内容模型中增加一个字段实际上是在附加表中增加一个字段,这里是调