<?php require_once "class.smarttemplate.php";    for ($row = 0;  $row < 3;  $row++) {
        for ($col = 0;  $col < 6;  $col++) {
$text  =  "Cell $col/$row";
            $table["row"][$row]["column"][$col]["CELL"] = $text;
        }
    } $page = new SmartTemplate("Nested_Blocks.html");
$page->assign($table);
$page->output();?>Nested_Blocks.html<HTML>
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0">
 
<!-- BEGIN row -->
<TR>
 
    <!-- BEGIN column -->
    <TD> {CELL} </TD>
    <!-- END column -->
 
</TR>
<!-- END row -->
 
</TABLE>
</HTML>

解决方案 »

  1.   

    其中的row和column是必须采用的标签吗?还是可以重命名的?抱歉看了几次smtpl类都没发现解析这个代码的地方,它是在begin解析里面统一被解析的吧。
      

  2.   

    可以,只要两边匹配即可块(BEGIN)总是处理成数组,无论嵌套多少都一样
    在编译生成的文件中跟踪$_out变量,就可知道如何处理的
      

  3.   

    $page->assign($table);这句这样用?不必带上第一参?
      

  4.   

    目标对象的名字row不是已经在$table里了吗?
      

  5.   

    $page->assign($table);
    等同于
    $page->assign('row',$table);
    嘛?