Smarty标签运算,控制结构[if,for,foreach,section,while]

本文介绍了Smarty模板中的标签运算,重点讲解了条件判断if、for循环、foreach循环(常用于遍历数据库数据)以及section功能。其中,推荐使用foreach而非section,因为foreach更易于理解和操作。
摘要由CSDN通过智能技术生成

Smarty标签运算:

在页面上做简单的运算[temp5.html]

条件判断if

循环结构

for

foreach用得比较多,foreach例子从数据库取出的数据

section功能和foreach类似,没foreach好理解 不推荐用

while

<?php
/*
smarty html标签可以运算
if elseif else判断
for循环
foreach循环
*/
require('../../smarty3/libs/Smarty.class.php');
require('./mysmarty.class.php');
$smarty=new MySmarty();

// 运算
$age=18;
$smarty->assign('age',$age);

// for循环
$start=1;
$end=100;
$smarty->assign('start',$start);
$smarty->assign('end',$end);

// foreach循环
// 连接数据库
$conn=mysqli_connect('localhost','root','123456','boolshop');
//设置字符集
$sql ='set names utf8';
mysqli_query($conn,$sql);
$sql ='select * from goods limit 5';
$rs=mysqli_query($conn,$sql);
// 取出数组
$goods=array();
while($row=mysqli_fetch_assoc($rs)){
	$goods[]=$row;
}
$smarty->assign('goods',$goods);

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

?>


temp5.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>temp5</title>
</head>

<body>
<!-- 运算 -->
	<h1>{$age}</h1>
	<h1>{$age+60}</h1>
	<h2>{if $age>18}</h2>
	play play
	<h2>{else if $age<18}</h2>
	还不能 play play
	<h2>{else}</h2>
	十八年如何勾勒才显得从容闲适
	十八年尽心竭力但求随自己意志
	{/if}
<br/>

	<!-- for循环
	格式:for $i=数字或变量 to 数字或变量 step 隔几个 -->

	<!-- 1-100打印奇数,隔三个换行;
	奇数可以用步长step 2就是间隔2,-》1 3 5
	$i%3==0打印出第一行是1 3因为3是整除了,但不应该根据i,而是根据一共有几个数
	$i@total = (end-start+1)/step 是打印的总个数
	$i@iteration =每次增加至有多少个的变量
	-->
	{for $i=$start to $end step 2}
	{$i} 
	{if $i@iteration%3==0}
	<br/>
	{/if}
	{/for}
	
	<br/>

	{literal}
	<!-- foreach 循环
	格式:foreach $数组名 as $k=>$v[可以自己设定]  二维数组调用 $v.名-->
	<!-- 1循环打印商品数组
	2表格隔行换色<tr {if $v@iteration%2==1}bgcolor="blue"{/if}><td>{$v@iteration}</td>
	3 first 只有第一行商品号背景色<tr {if $v@first}bgcolor="blue"{/if}>-->
	{/literal}

	<table>
 	<tr><td>商品号</td><td>商品名</td><td>价格</td></tr>

 	{foreach $goods as $k=>$v}
 	<tr {if $v@first}bgcolor="blue"{/if}><td>{$v@iteration}</td><td>{$v.goods_name}</td><td>{$v.shop_price}</td></tr>
	{/foreach}
	</table>

	<!-- section 循环,格式:name,loop字段必须
	loop循环数组=$source
	name属性代表每次循环的循环单元的临时变量
	把$source每循环的单元赋于name 自定义的 字段 -->

	<table>
 	<tr><td>号</td><td>商品名</td><td>价格</td></tr>

 	{section name=g loop=$goods}
 	<tr><td>{$goods[g].goods_id}</td><td>{$goods[g].goods_name}</td><td>{$goods[g].shop_price}</td></tr>
	{/section}
	</table>
	<!-- $source一定是索引数组 每循环一次key给g,g当goods的那一轮的key -->

	<!-- while循环 -->
	{while $age<25}
	{$age++}小于25
	{/while}

</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值