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

模板引擎提供了丰富的判断标签,比较标签的用法是:
 

  1. <比较标签 name="变量" value="值">内容</比较标签>  

系统支持的比较标签以及所表示的含义分别是:

  1. eq或者 equal:等于
  2.  
  3. neq 或者notequal:不等于
  4.  
  5. gt:大于
  6.  
  7. egt:大于等于
  8.  
  9. lt:小于
  10.  
  11. elt:小于等于
  12.  
  13. heq:恒等于
  14.  
  15. nheq:不恒等于

 
他们的用法基本是一致的,区别在于判断的条件不同。

例如,要求name变量的值等于DoYouHaoBaby就输出,可以使用:

  1. {~$name = 'DoYouHaoBaby'}   
  2. <eq name="name" value="DoYouHaoBaby">The DoYouHaoBaby Company !</eq>   


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 14:17:00  */ ?>   
  2. <?php $name = 'DoYouHaoBaby' ; ?>   
  3. <?php if(($name)  ==  "DoYouHaoBaby"): ?>The DoYouHaoBaby Company !<?php endif; ?>   

如图:

程序运行结果如下:

  1. The DoYouHaoBaby Company !  

如图:


你也可以使用equal,equal和eq功能一模一样,都是看是否相等。

  1. {~$name = 'DoYouHaoBaby'}   
  2. <equal name="name" value="DoYouHaoBaby">The DoYouHaoBaby Company !</equal>   


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 14:21:35  */ ?>   
  2. <?php $name = 'DoYouHaoBaby' ; ?>   
  3. <?php if(($name)  ==  "DoYouHaoBaby"): ?>The DoYouHaoBaby Company !<?php endif; ?>   

如图:

程序运行结果如下:

  1. The DoYouHaoBaby Company !  

如图:

也可以支持和else标签混合使用:

  1. {~$name = 'DoYouHaoBaby'}   
  2. <eq name="name" value="Google">Google公司<else/>这不是Google公司,这是DoYouHaoBaby 信息技术公司。</eq>  


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 14:24:14  */ ?>   
  2. <?php $name = 'DoYouHaoBaby' ; ?>   
  3. <?php if(($name)  ==  "Google"): ?>Google公司<?php else: ?>这不是Google公司,这是DoYouHaoBaby 信息技术公司。<?php endif; ?>  

如图:

程序运行后,结果如下:

  1. 这不是Google公司,这是DoYouHaoBaby 信息技术公司。  

如图:


当 nId变量的值大于5就输出

  1. {~$nId=6}   
  2. <gt name="nId" value="5">小区开盘,广告语写着:如果你不能给二_奶一个家,那么请至少给她一套房!</gt>   

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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 14:37:36  */ ?>   
  2. <?php $nId=6 ; ?>   
  3. <?php if(($nId)  >  "5"): ?>小区开盘,广告语写着:如果你不能给二_奶一个家,那么请至少给她一套房!<?php endif; ?>  

如图:

程序运行后,结果如下:

  1. 小区开盘,广告语写着:如果你不能给二_奶一个家,那么请至少给她一套房!  

如图:

 
当name变量的值不小于5就输出

  1. {~$nId=5}   
  2. <egt name="nId" value="5">爱情就是死循环,一旦执行就陷进去了。    
  3. 爱上一个人,就是内存泄露--你永远释放不了。    
  4. 真正爱上一个人的时候,那就是常量限定,永远不会改变。    
  5. 女朋友就是私有变量,只有我这个类才能调用。    
  6. 情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。</egt>   

 
程序运行编译后的PHP 代码如下:
  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 14:40:12  */ ?>   
  2. <?php $nId=5 ; ?>   
  3. <?php if(($nId)  >=  "5"): ?>爱情就是死循环,一旦执行就陷进去了。    
  4. 爱上一个人,就是内存泄露--你永远释放不了。    
  5. 真正爱上一个人的时候,那就是常量限定,永远不会改变。    
  6. 女朋友就是私有变量,只有我这个类才能调用。    
  7. 情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。<?php endif; ?>   

如图:

程序运行后,结果如下:

  1. 爱情就是死循环,一旦执行就陷进去了。 爱上一个人,就是内存泄露--你永远释放不了。 真正爱上一个人的时候,那就是常量限定,永远不会改变。 女朋友就是私有变量,只有我这个类才能调用。 情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。  

如图:


比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量:
 
举例说明:
 
当vo对象的属性(或者数组,或者自动判断)等于5就输出

  1. {~$arrData['id']=5}   
  2. {~$arrData['name']='某男逛妓院,问女价钱,女答:50元.男见便宜,干了.女说:请付100元,男问其因.女答进出各50元.男怒道:你他妈是中国移动啊,还双向收费!'}   
  3. <eq name="arrData.id" value="5">{$arrData.name}</eq>    

 
程序运行后的PHP 代码如下:
  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 14:53:56  */ ?>   
  2. <?php $arrData['id']=5 ; ?>   
  3. <?php $arrData['name']='某男逛妓院,问女价钱,女答:50元.男见便宜,干了.女说:请付100元,男问其因.女答进出各50元.男怒道:你他妈是中国移动啊,还双向收费!' ; ?>   
  4. <?php if((is_array($arrData) ? $arrData['id'] : $arrData->id)  ==  "5"): ?><?php echo( is_array($arrData) ? $arrData['name'] : $arrData->name ); ?><?php endif; ?>    

如图:

程序运行结果如下:

  1. 某男逛妓院,问女价钱,女答:50元.男见便宜,干了.女说:请付100元,男问其因.女答进出各50元.男怒道:你他妈是中国移动啊,还双向收费!  

如图:


当vo对象的属性等于5就输出

  1. <php>class test{ public $_nId=5; }</php>   
  2. {~$vo=new test()}   
  3. <eq name="vo:_nId" value="5">{$vo:_nId}</eq>   

 

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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 15:13:25  */ ?>   
  2. <?php class test{ public $_nId=5; } ?>   
  3. <?php $vo=new test() ; ?>   
  4. <?php if(($vo->_nId)  ==  "5"): ?><?php echo( $vo->_nId ); ?><?php endif; ?>     


如图:


程序运行结果如下:

  1. 5  

如图:

 

当$vo['name']等于DoYouHaoBaby就输出

  1. {~$vo['name']='DoYouHaoBaby'}   
  2. <eq name="vo['name']" value="DoYouHaoBaby">{$vo.name}</eq>    

 

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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 15:19:56  */ ?>   
  2. <?php $vo['name']='DoYouHaoBaby' ; ?>   
  3. <?php if(($vo['name'])  ==  "DoYouHaoBaby"): ?><?php echo( is_array($vo) ? $vo['name'] : $vo->name ); ?><?php endif; ?>   

如图:

程序运行结果如下:

  1. DoYouHaoBaby  

如图:


而且还可以支持对变量使用函数

当vo数组元素值的字符串长度等于31就输出

  1. {~$vo['name']='The DoYouHaoBaby PHP Framework!'}   
  2. <eq name="vo.name|strlen" value="31">{$vo.name}</eq>    

 
程序运行后的PHP 编译代码如下:
  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 15:26:57  */ ?>   
  2. <?php $vo['name']='The DoYouHaoBaby PHP Framework!' ; ?>   
  3. <?php if((strlen(is_array($vo) ? $vo['name'] : $vo->name))  ==  "31"): ?><?php echo( is_array($vo) ? $vo['name'] : $vo->name ); ?><?php endif; ?>    

如图:

程序运行结果如下:

  1. The DoYouHaoBaby PHP Framework!  

如图:

 

变量名可以支持系统变量的方式,例如:

  1. {~$_GET['name']='I am the DoYouHaoBaby CEO !'}   
  2. <eq name="D.get.name" value="I am the DoYouHaoBaby CEO !">{$D.get.name}<else/>I am not a CEO !</eq>    

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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 15:30:56  */ ?>   
  2. <?php $_GET['name']='I am the DoYouHaoBaby CEO !' ; ?>   
  3. <?php if(($_GET['name'])  ==  "I am the DoYouHaoBaby CEO !"): ?><?php echo( $_GET['name'] ); ?><?php else: ?>I am not a CEO !<?php endif; ?>   

如图:

程序运行结果如下:

  1. I am the DoYouHaoBaby CEO !  

如图:


通常比较标签的值是一个字符串或者数字,如果需要使用变量,只需要在前面添加“$”标志:
 
当vo数组的元素值等于$a就输出

  1. {~$vo['name']='The DoYouHaoBaby Company !'}   
  2. {~$a='The DoYouHaoBaby Company !'}   
  3. <eq name="vo.name" value="$a">{$vo.name}</eq>    

 
程序运行后的PHP 代码如下:
  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 15:39:27  */ ?>   
  2. <?php $vo['name']='The DoYouHaoBaby Company !' ; ?>   
  3. <?php $a='The DoYouHaoBaby Company !' ; ?>   
  4. <?php if((is_array($vo) ? $vo['name'] : $vo->name)  ==  $a): ?><?php echo( is_array($vo) ? $vo['name'] : $vo->name ); ?><?php endif; ?>  

如图:

程序运行后结果:

  1. The DoYouHaoBaby Company !  

如图:


所有的比较标签可以统一使用compare标签(其实所有的比较标签都是compare标签的别名),例如:
 
当id变量的值等于5就输出

  1. {~$id=5}   
  2. <compare name="id" value="5" type="eq">I am id - 5 !</compare>     
  3. <eq name="id" value="5" >I am id - 5 !</eq>   


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

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-11 15:45:55  */ ?>   
  2. <?php $id=5 ; ?>   
  3. <?php if(($id)  ==  "5"): ?>I am id - 5 !<?php endif; ?><br>    
  4. <?php if(($id)  ==  "5"): ?>I am id - 5 !<?php endif; ?>  


如图:


程序运行结果如下:

  1. I am id - 5 !   
  2. I am id - 5 !  

如图:

说明:等效公式:( compare+type = type ),其中type属性的值就是上面列出的比较标签名称。