摘要:<?php session_start(); //启动 session 会话 // 引入的smarty 模板引擎已经写在 config目录中 require "./config/config.php&q
<?php
session_start(); //启动 session 会话
// 引入的smarty 模板引擎已经写在 config目录中
require "./config/config.php";
//1绑定变量 在demo1.html中 是以第一个参数为变量的
$name = '小龙女';
$smarty->assign('name',$name);
//2数组绑定
$arr = ['html5','javascript','jquery','php','sql'];
$smarty->assign('arr1',$arr);
//3 关联数组
$guanlian = ['name'=>'php从入门到放弃','time'=>'2019-10-11','jiage'=>90];
$smarty->assign('book',$guanlian);
//4 多维数组
$duowei[] = ['name'=>'php从入门到放弃','time'=>'2019-10-11','jiage'=>90];
$duowei[] = ['name'=>'java从入门到放弃','time'=>'2020-10-11','jiage'=>40];
$smarty->assign('books',$duowei);
//5 对象
//$test = new stdclass();
//$test->title = '这是一个标题';
class test{
public $title = 'php中文网';
public function welcome(){
return '欢迎来到'.$this->title;
}
}
$test = new test();
$smarty->assign('test',$test);
//6 自定义函数 // 在html中 不要加$
function add($a,$b){
return $a+$b;
}
//$smarty->assign('add',add);
//7 常量const 常量作用域是全局,不必模板复制可以直接访问到 $smarty.const.SITE_NAME
const SITE_NAME = 'php中文网';
//8 系统变量 需要先将
$_POST['user'] = '超级管理员';
$_GET['age'] = 10;
//会话信息 必须的启动 session_start(); 函数
$_SESSION['pass'] = 'sddsd'; //session 存储用户会话信息
//渲染 此处是html文件的标签对应绑定到这里 //这里的路劲 是以 模板目录 为路劲 . 且demo1.html 文件必须存在
$smarty->display('demo1.html');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>smarty内置函数</title>
</head>
<body>
{* 1.模板中定义变量 *}
{assign var="siteName" value="php中文网"}
{* 定义变量的简写 *}
{$model = "article"}
{* 2.模板中的分支处理 *}
{* 例: 判断是否是奇数}
{* assign var="data" value=20 *}
{$data = 34}
{if $data is odd}
<p>{$data}是奇数</p>
{else}
<p>{$data}是偶数</p>
{/if}
{* 例: 判断成绩是否合格? *}
{$grade = 55}
{if $grade > 80}
<p>优秀</p>
{elseif $grade >= 60}
<p>合格</p>
{else}
<p style="color:red">不及格,准备补考吧</p>
{/if}
{* 3.for循环 *}
<p>for循环:
{for $i=0 to 10 step 2}
{$i}, {* 输出循环变量,并用逗号分割 *}
{forelse} {* 如果条件不成立:将$i修改为100,则会执行到这里 *}
循环条件错误
{/for}
</p>
{* 4.while循环,我们将for案例用while改写 *}
<p>while循环:
{$i = 20}
{while ($i < 10)}
{$i++} {* 递增输出循环变量 *}
{/while}
</p>
{* 5.foreach数组专用的遍历函数:与原生PHP的foreach()语句极其相似}
{* 遍历一维数组 *}
{* 定义一个一维关联数组 *}
{$staff = ['name'=>'peter', 'sex'=>'male', 'salary'=>5899]}
{* 遍历一维数组:通常一维关联数组的键名非常重要 *}
{foreach $staff as $key=>$value}
{$key}=>{$value} <br>
{/foreach}
{* 遍历二维数组 *}
{* 定义一个二维数组 *}
{$mobile = [
['brand'=>'华为','model'=>'P20', 'price'=>6688],
['brand'=>'苹果','model'=>'iPhone8', 'price'=>5500],
['brand'=>'小米','model'=>'Mi8', 'price'=>4899]
]}
{* 将$mobile数组置空,就是走到foreachelse分支 *}
{* $mobile = [] *}
{* 遍历二维关联数组:二维数组的键名对于元素不重要,但对于单个元素重要 *}
<ul>
{foreach $mobile as $value}
<li>品牌:{$value.brand},型号:{$value.model},价格:{$value.price}</li>
{foreachelse}
没有手机的数据
{/foreach}
{* 6.直接在模板中定义函数:直接参数默认值 *}
{function name="welcome" site="php中文网"}
<p>欢迎来到{$site}学习~~</p>
{/function}
{* 调用welcome函数 *}
{call name="welcome"}
{call name="welcome" site="PHP中文网(www.php.cn)"}
{* 函数定义的简写 *}
{* 定义函数 *}
{function welcome }
<p>欢迎来到{$site}学习PHP编程!</p>
{/function}
{* 调用 *}
{welcome site='www.php.cn'}
</ul>
</body>
</html>
批改老师:西门大官人批改时间:2019-03-03 14:21:59
老师总结:smarty是一个比较简单的模板引擎,它有自己的语法,在实际开发中,只要记住它的语法就可以使用。它的运行原理是把模板中的语法规则解析成php的语言,然后再执行