The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ Switch标签 ]
模板引擎支持Switch标签,格式为:
- <switch name="变量" >
- <case value="值1">输出内容1</case>
- <case value="值2">输出内容2</case>
- <default />默认情况
- </switch>
我们在模板中使用写下如下的代码:
- {~$arrCompany = array( 'id'=>2,'name'=>'The DoYouHaoBaby Company !' )}
- <switch name="arrCompany.id">
- <case value="1">Microsoft</case>
- <case value="2">{$arrCompany['name']}</case>
- <default />Google
- </switch>
程序运行编译后的PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:21:20 */ ?>
- <?php $arrCompany = array( 'id'=>2,'name'=>'The DoYouHaoBaby Company !' ) ; ?>
- <?php switch(is_array($arrCompany) ? $arrCompany['id'] : $arrCompany->id): ?><?php case "1": ?>Microsoft<?php break;?>
- <?php case "2": ?><?php echo( $arrCompany['name'] ); ?><?php break;?>
- <?php default: ?>Google<?php endswitch;?>
如图:

程序最后运行的结果:
- The DoYouHaoBaby Company !
如图:

其中name属性可以使用函数以及系统变量,例如:
- {~$_GET['id']=-1}
- <switch name="D.get.id|abs">
- <case value="1">DoYouHaoBaby First !</case>
- <default />Google
- </switch>
程序运行后的编译PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:44:36 */ ?>
- <?php $_GET['id']=-1 ; ?>
- <?php switch(abs($_GET['id'])): ?><?php case "1": ?>DoYouHaoBaby First !<?php break;?>
- <?php default: ?>Google<?php endswitch;?>
如图:

程序运行后的结果为:
- DoYouHaoBaby First !
如图:

对于case的value属性可以支持多个条件的判断,使用”|”进行分割,例如:
使用变量方式的情况下,不再支持多个条件的同时判断。
我们在模板中写下如下的代码:
- {~$_GET['name']='DoYouHaoBaby'}
- <switch name="D.get.name">
- <case value="DoYouHaoBaby|Alibaba|Yahoo|Microsoft">Company in this ( DoYouHaoBaby|Alibaba|Yahoo|Microsoft )!</case>
- <default />other company !
- </switch>
程序运行的编译的PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:50:54 */ ?>
- <?php $_GET['name']='DoYouHaoBaby' ; ?>
- <?php switch($_GET['name']): ?><?php case "DoYouHaoBaby": case "Alibaba": case "Yahoo": case "Microsoft": ?>Company in this ( DoYouHaoBaby|Alibaba|Yahoo|Microsoft )!<?php break;?>
- <?php default: ?>other company !<?php endswitch;?>
如图:

程序运行结果如下:
- Company in this ( DoYouHaoBaby|Alibaba|Yahoo|Microsoft )!
如图:

也可以对case的value属性使用变量,例如,我们可以在模板文件中写下如下的代码:
- {~$_GET['company_id']=2}
- {~$nGoogleId=1}
- {~$nDoYouHaoBaby=2}
- <switch name="D.get.company_id">
- <case value="$nGoogleId">Google :http://www.google.com</case>
- <case value="$nDoYouHaoBaby">DoYouHaoBaby: http://doyouhaobaby.net</case>
- <default />default
- </switch>
程序运行后的编译的PHP 为:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 13:57:13 */ ?>
- <?php $_GET['company_id']=2 ; ?>
- <?php $nGoogleId=1 ; ?>
- <?php $nDoYouHaoBaby=2 ; ?>
- <?php switch($_GET['company_id']): ?><?php case $nGoogleId: ?>Google :http://www.google.com<?php break;?>
- <?php case $nDoYouHaoBaby: ?>DoYouHaoBaby: http://doyouhaobaby.net<?php break;?>
- <?php default: ?>default<?php endswitch;?>
如图:

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

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