3、SmartTemplate的逻辑控制结构
★If和end If
语法:
<!-- IF 变量 --> 变量已被赋值! <!-- ENDIF 变量 -->
如果IF后面直接跟变量,变量为Null时会返回0,否则返回1
<!-- IF name=="John Doe" --> Your name is John Doe! <!-- ENDIF name -->
==判断是否相等,如果相等返回1,不相等返回0
<!-- IF name!="John Doe" --> Your name is not John Doe! <!-- ENDIF name -->
!=判断是否不等,如果成立返回1,相等则返回0
例子:
复制内容到剪贴板
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("if.html");
$page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' );
$page->output();
?> HTML
复制内容到剪贴板
代码:
<!-- IF username --> <H3> Welcome, {username} </H3> <!-- ENDIF -->
<!-- IF picture --> <img src="{picture}"> <!-- ENDIF picture -->
<!-- IF usergroup="ADMIN" -->
<a href="../admin.php"> ADMIN Login </a><br>
<!-- ENDIF usergroup --> 输出
复制内容到剪贴板
代码:
<H3> Welcome, John Doe </H3>
<a href="../admin.php"> ADMIN Login </a><br> ★IF的子局 else
如果else子句出现在一个逻辑循环中,当if的条件不成立时则会被运行。
例子
复制内容到剪贴板
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("else.html");
$page->assign( 'username', 'John Doe' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' );
$page->output();
?>模版
复制内容到剪贴板
代码:
<!-- IF username -->
<H3> Welcome, {username} </H3>
<!-- ENDIF -->
<!-- IF picture -->
<img src="{picture}">
<!-- ELSE -->
Picture not available! <br>
<!-- ENDIF picture -->
<!-- IF usergroup="ADMIN" -->
<a href="../admin.php"> ADMIN Login </a><br>
<!-- ELSE -->
You are in guest mode!
<!-- ENDIF usergroup --> 输出
复制内容到剪贴板
代码:
<H3> Welcome, John Doe </H3>
Picture not available! <br>
<a href="../admin.php"> ADMIN Login </a><br> ★elseif
elseif是else和if组合起来的一种结构,其意义为"除此之外如果..."
以下是一个例子
复制内容到剪贴板
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("elseif.html");
$page->assign( 'usergroup', 'INTERNAL' );
$page->output();
?> 模版文件
复制内容到剪贴板
代码:
<!-- IF usergroup="ADMIN" -->
<a href="../admin.php"> 管理员登陆 </a><br>
<!-- ELSEIF usergroup="SUPPORT" -->
<a href="../support.php"> 帮助人员登陆</a><br>
<!-- ELSEIF usergroup -->
<a href="../other.php"> 普通方式登陆 </a><br>
<!-- ELSE -->
You don't even have a usergroup!
<!-- ENDIF --> 运行php得到的输出
复制内容到剪贴板
代码:
<a href="../other.php"> 普通方式登陆 </a><br> ★Begin...End
这个语句用于读取一个整数索引矩阵(Numerical Array,以数字为索引的数组)的值.而每个整数矩阵的子矩阵则成为以字符串为索引的矩阵(Associative Array)然后在<!-- begin --> 和 <!-- end -->之间的语句将会被读取并且重复执行.
附加:,每个associative array(字符串为索引的矩阵)会有两个附加的值
ROWCNT : 此元素在父矩阵中的具体位置 (0,1,2,3,...n) (就是目前在第几个矩阵)
ROWBIT : 矩阵序号的最后一位. (0,1,0,1,0,1,...)
下面是一个例子
PHP代码:
复制内容到剪贴板
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("begin_end.html");
$users = array(
array( 'NAME' => 'John Doe', 'GROUP' => 'ADMIN' ),
array( 'NAME' => 'Jack Doe', 'GROUP' => 'SUPPORT' ),
array( 'NAME' => 'James Doe', 'GROUP' => 'GUEST' ),
array( 'NAME' => 'Jane Doe', 'GROUP' => 'GUEST' ),
);
$page->assign( 'users', $users );
$page->output();
?> HTML模版
复制内容到剪贴板
代码:
<style type="text/css">
.col0 { background-color: #D0D0D0; }
.col1 { background-color: #F0F0F0; }
</style>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<th> No </th>
<th> Username </th>
<th> Usergroup </th>
</tr>
<!-- BEGIN users -->
<tr class="col{ROWBIT}">
<td> {ROWCNT} </td>
<td> {NAME} </td>
<td> {GROUP} </td>
</tr>
<!-- END users -->
</table> 最后的输出
复制内容到剪贴板
代码:
<style type="text/css">
.col0 { background-color: #D0D0D0; }
.col1 { background-color: #F0F0F0; }
</style>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<th> No </th>
<th> Username </th>
<th> Usergroup </th>
</tr>
<tr class="col0">
<td> 0 </td>
<td> John Doe </td>
<td> ADMIN </td>
</tr>
<tr class="col1">
<td> 1 </td>
<td> Jack Doe </td>
<td> SUPPORT </td>
</tr>
<tr class="col0">
<td> 2 </td>
<td> James Doe </td>
<td> GUEST </td>
</tr>
<tr class="col1">
<td> 3 </td>
<td> Jane Doe </td>
<td> GUEST </td>
</tr>
</table>