The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 默认值 ]

如果输出的模板变量没有值,但是我们需要在显示的时候赋予一个默认值的话,可以使用default语法,格式:
 

  1. {$变量|default="默认值"}  
 

这里的default不是函数,而是系统的一个语法规则,例如,我们在模板中写下如下的代码:

  1. {~$arrCompany['name']=''}   
  2. {$arrCompany.name|default="这家公司怎么连个名字都没有,好吧,告诉你吧!其实我们的公司叫做 DoYouHaoBaby,只是最近手头紧,没有钱找一家广告制作公司的牌子 !我想问一下,你能够帮助我们吗?"}   

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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-10 10:21:48  */ ?>   
  2. <?php $arrCompany['name']='' ; ?>   
  3. <?php echo( (is_array($arrCompany) ? $arrCompany['name'] : $arrCompany->name) ? (is_array($arrCompany) ? $arrCompany['name'] : $arrCompany->name) : "这家公司怎么连个名字都没有,好吧,告诉你吧!其实我们的公司叫做 DoYouHaoBaby,只是最近手头紧,没有钱找一家广告制作公司的牌子 !我想问一下,你能够帮助我们吗?" ); ?>   

如图:

 

程序运行结果如下:

  1. 这家公司怎么连个名字都没有,好吧,告诉你吧!其实我们的公司叫做 DoYouHaoBaby,只是最近手头紧,没有钱找一家广告制作公司的牌子 !我想问一下,你能够帮助我们吗?   

如图:


对系统变量的输出不支持默认值,例如,我们在模板中写下如下的代码:

  1. {~$_GET['name']=''}   
  2. {$D.get.name|default="The DoYouHaoBaby PHP Framework | NOT TM ~ BUT TM"}    


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-10 10:31:05  */ ?>   
  2. <?php $_GET['name']='' ; ?>   
  3. <?php echo( NOT TM ~ BUT TM"(($_GET['name']) ? ($_GET['name']) : "The DoYouHaoBaby PHP Framework ) ); ?>  

如图:

结论:显然编译后的PHP 代码有语法错误,完全乱套了,所以上面的语法是错误的。


因为快捷输出不支持使用函数,所以也不支持默认值,默认只支持Html语法。例如,我们在模板中输出如下的代码:

  1. {~$_GET['company']=''}       
  2. {%compnay|default="DoYouHaoBaby"}   


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-10 10:47:05  */ ?>   
  2. <?php $_GET['company']='' ; ?>       
  3. <?php echo( $_GET['compnay|default="DoYouHaoBaby"'] ); ?>   

如图:

结论:虽然编译后的PHP 代码没有语法错误,但是也没有达到我们的目的,所以这种语法也是不可取的。

下一节的三目运算符与这样十分相似,甚至功能一样,大家可以发掘吧。