The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ Switch标签 ]

模板引擎支持Switch标签,格式为:

  1. <switch name="变量" >     
  2.    <case value="值1">输出内容1</case>     
  3.    <case value="值2">输出内容2</case>     
  4.    <default  />默认情况      
  5. </switch>   

我们在模板中使用写下如下的代码:

  1. {~$arrCompany = array( 'id'=>2,'name'=>'The DoYouHaoBaby Company !' )}   
  2. <switch name="arrCompany.id">     
  3.   <case value="1">Microsoft</case>     
  4.   <case value="2">{$arrCompany['name']}</case>     
  5.   <default />Google       
  6. </switch>   


程序运行编译后的PHP 代码如下:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:21:20  */ ?>   
  2. <?php $arrCompany = array( 'id'=>2,'name'=>'The DoYouHaoBaby Company !' ) ; ?>   
  3. <?php switch(is_array($arrCompany) ? $arrCompany['id'] : $arrCompany->id): ?><?php case "1":  ?>Microsoft<?php break;?>     
  4.   <?php case "2":  ?><?php echo( $arrCompany['name'] ); ?><?php break;?>     
  5.   <?php default: ?>Google<?php endswitch;?>   


  如图:
 


程序最后运行的结果:

  1. The DoYouHaoBaby Company !  

如图:

其中name属性可以使用函数以及系统变量,例如:

  1. {~$_GET['id']=-1}   
  2. <switch name="D.get.id|abs">     
  3.    <case value="1">DoYouHaoBaby First !</case>      
  4.    <default />Google     
  5. </switch>  

程序运行后的编译PHP 代码如下:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:44:36  */ ?>   
  2. <?php $_GET['id']=-1 ; ?>   
  3. <?php switch(abs($_GET['id'])): ?><?php case "1":  ?>DoYouHaoBaby First !<?php break;?>      
  4.    <?php default: ?>Google<?php endswitch;?>  


如图:

程序运行后的结果为:

  1. DoYouHaoBaby First !  

如图:

对于case的value属性可以支持多个条件的判断,使用”|”进行分割,例如:
 
使用变量方式的情况下,不再支持多个条件的同时判断。

我们在模板中写下如下的代码:

  1. {~$_GET['name']='DoYouHaoBaby'}   
  2. <switch name="D.get.name">     
  3.   <case value="DoYouHaoBaby|Alibaba|Yahoo|Microsoft">Company in this ( DoYouHaoBaby|Alibaba|Yahoo|Microsoft )!</case>      
  4.   <default />other company !     
  5. </switch>   


程序运行的编译的PHP 代码如下:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:50:54  */ ?>   
  2. <?php $_GET['name']='DoYouHaoBaby' ; ?>   
  3. <?php switch($_GET['name']): ?><?php case "DoYouHaoBaby": case "Alibaba": case "Yahoo": case "Microsoft":  ?>Company in this ( DoYouHaoBaby|Alibaba|Yahoo|Microsoft )!<?php break;?>      
  4.   <?php default: ?>other company !<?php endswitch;?>    


如图:


程序运行结果如下:

  1. Company in this ( DoYouHaoBaby|Alibaba|Yahoo|Microsoft )!  

如图:


也可以对case的value属性使用变量,例如,我们可以在模板文件中写下如下的代码:

  1. {~$_GET['company_id']=2}   
  2. {~$nGoogleId=1}   
  3. {~$nDoYouHaoBaby=2}   
  4. <switch name="D.get.company_id">      
  5.     <case value="$nGoogleId">Google :http://www.google.com</case>     
  6.     <case value="$nDoYouHaoBaby">DoYouHaoBaby: http://doyouhaobaby.net</case>     
  7.     <default />default      
  8.  </switch>  


程序运行后的编译的PHP 为:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:57:13  */ ?>   
  2. <?php $_GET['company_id']=2 ; ?>   
  3. <?php $nGoogleId=1 ; ?>   
  4. <?php $nDoYouHaoBaby=2 ; ?>   
  5. <?php switch($_GET['company_id']): ?><?php case $nGoogleId:  ?>Google :http://www.google.com<?php break;?>     
  6.     <?php case $nDoYouHaoBaby:  ?>DoYouHaoBaby: http://doyouhaobaby.net<?php break;?>     
  7.     <?php default: ?>default<?php endswitch;?>  

如图:

程序运行后的结果如下:
  1. DoYouHaoBaby: http://doyouhaobaby.net  

如图:


好了,关于switch标签语法,这里我们就结束了。