9.条件判断

条件判断

编译方法

$tags_condition=array(
    "{if([:any])}"              =>"<?php if($1){ ?>",
    "{/if}"                     =>"<?php } ?>",
    "{else/?}"                  =>"<?php }else{ ?>",
    "{elseif([:any])/?}"        =>"<?php }elseif($1){ ?>",
    "{else[:blank]if([:any])/?}" =>"<?php }elseif($1){ ?>",
    //"{switch([:any])}"        =>"<?php switch($1){ \?\>",                     //switch和case间很容易就产生空格
    "{switch([:any])}[:blank]{case[:any]:}" =>"<?php switch($1){ case $2: ?>",  //为了避免switch和case间产生空格
    "{/switch}"                 =>"<?php } ?>",
    "{case[:any]:}"             =>"<?php case $1: ?>",
    "{break;}"                  =>"<?php break; ?>",
    "{default:}"                =>"<?php default: ?>",
);

案例

if标签

{if($var)}
  111
{elseif(54>8967)/}
  222
{else if($v2)/}
  2.5
{else/}
  333
{/if}

switch标签

{switch($num)}
 {case 1:} 111 <br/> {break;}
 {case 2:} 222 <br/> {break;}
 {default:} ddd <br/> {break;}
{/switch}

{switch($str)}
 {case '1':} 111 <br/> {break;}
 {case '2':} 222 <br/> {break;}
 {default:} ddd <br/> {break;}
{/switch}

可能发生的错误

switch和case输出空格问题

解决:<?php switch(4){?>【这里不能有输出,空格也不行】 <?php case 1: ?>】 Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT switch和case之间是不能有任何输出的 PS:一个空格也不行。。