Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
我们已经知道了在Controller中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢?
如果我们在Controller中赋值了一个sName模板变量 (因为第一次演示,为了不空洞,我给配上了图片) :
- $sName = 'Hello DoYouHaoBaby!';
- $this->assign( 'sName',$sName );
如图:

使用内置的模板引擎输出变量,只需要在模版文件使用:
- {$sName}
如图:

模板编译后的结果就是:
- <?php echo( $sName ); ?>
如图:

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

注意:模板标签的 { 和 $ 之间不能有任何的空格,否则标签无效。
普通标签默认开始标记是 {,结束标记是 }。也可以通过设置LEFT_TAG和RIGHT_TAG进行更改。
比如,你可以在配置文件Conf/Config.php中写下如下的代码:
- 'LEFT_TAG'=>'[',
- 'RIGHT_TAG'=>']',
也许你会看到这样写必然引起代码混乱,以为‘[’、']'比较常用。因为基于这样子的原因,DoYouHaoBaby 决定删除这个功能。你只允许使用'{'、'}'来解析普通的代码标签。虽然少了一个配置灵活度,但是这样子也是有很多好处,一可以做到不引起混乱,二可以降低开发人员折腾的心。
assign方法里面的第一个参数才是模板文件中使用的变量名称。如果改成下面的代码:
- $sName = 'Hello DoYouHaoBaby!';
- $this->assign( 'sName2',$sName );
再使用{$sName} 输出就无效了,必须使用 {$sName2} 才能输出模板变量的值了。
我们给模板传递一个数组,然后输出其中的值。
- $arrValue = array(
- 'name'=>'DoYouHaoBaby Company',
- 'description'=>'It is not a dream!'
- );
- $this->assign( 'arrValue',$arrValue );
如图:

然后,我们在模板中输出采用最普通的方式输出数据:
- 我们的毕业的梦想是成立一家叫做”{$arrValue['name']}“的科技公司,我们相信”{$arrValue['description']}“。
如图:

编译后的代码:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-09 11:58:43 */ ?>
- 我们的毕业的梦想是成立一家叫做”<?php echo( $arrValue['name'] ); ?>“的科技公司,我们相信”<?php echo( $arrValue['description'] ); ?>“。
如图:
输出结果:
我们的毕业的梦想是成立一家叫做”DoYouHaoBaby Company“的科技公司,我们相信”It is not a dream!“。
如图:

我们编写这样子一个简单对象:
- class demo{
- public $_sName ='DoYouHaoBaby Company';
- public $_sDescription = 'It is not a dream!';
- }
然后再赋值:
- $arrValue = new demo();
- $this->assign( 'arrValue',$arrValue );
- $this->display();
如图:

然后,我们修改模板,在模板写下如下的代码:
- 我们的毕业的梦想是成立一家叫做”{$arrValue:_sName}“的科技公司,我们相信”{$arrValue:_sDescription}“。

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

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

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