if
if … endif 结构用于处理条件化的模块片断
它可以使用下边任何一个语法
<!– IF var –> var is not empty! <!– ENDIF var –>
<!– IF name=="John Doe" –> Your name is John Doe! <!– ENDIF name –>
<!– IF name!="John Doe" –> Your name is not John Doe! <!– ENDIF name –>
(ENDIF后的
变量是可选的)
if ... endif 控制有条件的输出
模板的部分.
语法如下:
变量不为空
复制内容到剪贴板
代码:
<!-- IF var --> var 不为空! <!-- ENDIF var -->变量值判断
复制内容到剪贴板
代码:
<!-- IF name=="HonestQiao" --> Your name is HonestQiao! <!-- ENDIF name -->变量值否定判断
复制内容到剪贴板
代码:
<!-- IF name!=" HonestQiao " --> Your name is not HonestQiao! <!-- ENDIF name --> (var 在 ENDIF 之后是可选的,但是最好加上)
if.php:
复制内容到剪贴板
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("if.html");
$page->assign( 'username', 'HonestQiao' );
$page->assign( 'usergroup', 'ADMIN' );
$page->assign( 'picture', '' );
$page->output();
?>if.php使用的模板
文件如下:
if.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 -->if.php执行的效果如下:
输出:
复制内容到剪贴板
代码:
<H3> Welcome, HonestQiao </H3>
<a href="admin.php"> ADMIN Login </a><br>else 控制作为 if 控制的扩展,当if 判断结果为 FALSE 来输出模板的一部分.
else.php:
复制内容到剪贴板
代码:
<?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();
?> else.php使用的模板文件如下:
else.html:
复制内容到剪贴板
代码:
<!-- 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 -->else.php执行的效果如下:
输出:
引用:
<H3>; Welcome, John Doe </H3>
Picture not available! <br>
<a href="admin.php"> ADMIN Login </a><br>
elseif 控制是 else 与 if 的结合.
elseif.php:
复制内容到剪贴板
代码:
<?php
require_once "class.smarttemplate.php";
$page = new SmartTemplate("elseif.html");
$page->assign( 'usergroup', 'INTERNAL' );
$page->output();
?> elseif.php使用的模板文件如下:
elseif.html:
复制内容到剪贴板
代码:
<!-- IF usergroup="ADMIN" -->
<a href="admin.php"> Admin Staff Login </a><br>
<!-- ELSEIF usergroup="SUPPORT" -->
<a href="support.php"> Support Staff Login </a><br>
<!-- ELSEIF usergroup -->
<a href="other.php"> Standard Login </a><br>
<!-- ELSE -->
You don't even have a usergroup!
<!-- ENDIF -->
elseif.php执行效果如下:
输出:
引用:
<a href="other.php"> Standard Login </a><br>
begin ... end 结构
begin ... end 结构结构提供了一种方法,使用数字索引数组来输出重复的相似的内容。数字索引数组的每一个元素,应该是一个散列数组,<!-- begin --> and <!-- end --> 标签类似一个小的模板,他分析内嵌的模板片断,并使用这个散列数组来生成内容。
每个散列数组可以使用以下的两个扩展参数:
ROWCNT :当前元素的在父数组之中的实际位置. (0,1,2,3,...n)
ROWBIT : 表示ROWCNT的二进制字节的最后一位,也就是奇偶值. (0,1,0,1,0,1,...)
begin ... end 块可以很容易的嵌套使用,他们会被自动的递归分析.
begin_end.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();
?>begin_end.php使用的模板如下:
begin_end.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>begin_end.php的运行效果如下:
输出:
复制内容到剪贴板
代码:
<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>[
本帖最后由 flyindance 于 2007-11-15 21:51 编辑 ]