The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 变量输出索引 ]

我们已经知道了在Controller中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢?

最简单一个普通变量

如果我们在Controller中赋值了一个sName模板变量 (因为第一次演示,为了不空洞,我给配上了图片) :

  1. $sName = 'Hello DoYouHaoBaby!';      
  2. $this->assign( 'sName',$sName );   

 

如图:

使用内置的模板引擎输出变量,只需要在模版文件使用:

  1. {$sName}  

 

如图:


模板编译后的结果就是:

  1. <?php echo( $sName ); ?>  

如图:

最后运行的时候就可以在标签位置显示Hello DoYouHaoBaby!的输出结果。

如图:

注意:模板标签的 { 和 $ 之间不能有任何的空格,否则标签无效。

普通标签默认开始标记是 {,结束标记是 }。也可以通过设置LEFT_TAG和RIGHT_TAG进行更改。

比如,你可以在配置文件Conf/Config.php中写下如下的代码:

  1. 'LEFT_TAG'=>'[',      
  2. 'RIGHT_TAG'=>']',  

也许你会看到这样写必然引起代码混乱,以为‘[’、']'比较常用。因为基于这样子的原因,DoYouHaoBaby 决定删除这个功能。你只允许使用'{'、'}'来解析普通的代码标签。虽然少了一个配置灵活度,但是这样子也是有很多好处,一可以做到不引起混乱,二可以降低开发人员折腾的心。

assign方法里面的第一个参数才是模板文件中使用的变量名称。如果改成下面的代码:

  1. $sName = 'Hello DoYouHaoBaby!';      
  2. $this->assign( 'sName2',$sName );   

 

再使用{$sName} 输出就无效了,必须使用 {$sName2} 才能输出模板变量的值了。


输出一个数组

我们给模板传递一个数组,然后输出其中的值。

  1. $arrValue = array(    
  2.     'name'=>'DoYouHaoBaby Company',   
  3.     'description'=>'It is not a dream!'   
  4.  );      
  5. $this->assign( 'arrValue',$arrValue );   

如图:

然后,我们在模板中输出采用最普通的方式输出数据:

  1. 我们的毕业的梦想是成立一家叫做”{$arrValue['name']}“的科技公司,我们相信”{$arrValue['description']}“。  

如图:

编译后的代码:

  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-09 11:58:43  */ ?>   
  2. 我们的毕业的梦想是成立一家叫做”<?php echo( $arrValue['name'] ); ?>“的科技公司,我们相信”<?php echo( $arrValue['description'] ); ?>“。  

如图:

 

输出结果:
我们的毕业的梦想是成立一家叫做”DoYouHaoBaby Company“的科技公司,我们相信”It is not a dream!“。

如图:


输出一个对象

我们编写这样子一个简单对象:

  1. class demo{   
  2.   
  3.     public $_sName ='DoYouHaoBaby Company';   
  4.   
  5.     public $_sDescription = 'It is not a dream!';   
  6. }  

 

然后再赋值:

  1. $arrValue = new demo();   
  2. $this->assign( 'arrValue',$arrValue );    
  3.        
  4. $this->display();  

 

如图:

然后,我们修改模板,在模板写下如下的代码:

  1. 我们的毕业的梦想是成立一家叫做”{$arrValue:_sName}“的科技公司,我们相信”{$arrValue:_sDescription}“。  

编译后的代码如下:

  1.  <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-09 12:09:50  */ ?>   
  2. 我们的毕业的梦想是成立一家叫做”<?php echo( $arrValue->_sName ); ?>“的科技公司,我们相信”<?php echo( $arrValue->_sDescription ); ?>“。  

如图:

输出结果如下:
我们的毕业的梦想是成立一家叫做”DoYouHaoBaby Company“的科技公司,我们相信”It is not a dream!“。

如图:

好了,通过上面的图文演示,你应该会有一个直观的感觉了吧,那么接下面,我们将不再提供图片演示了。