Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
Php代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的PHP语句代码 ,包括下面两种方式:
我们可以在模板引擎中写下如下的代码:
- <php>echo 'Hello,world!';</php>
程序运行后的编译PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 05:44:46 */ ?>
- <?php echo 'Hello,world!'; ?>
如图:

程序运行结果如下:
- Hello,world!
如图:

- <?php echo 'Hello,world!'; ?>
程序编译后的PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 06:00:41 */ ?>
- <?php echo 'Hello,world!'; ?>
如图:

程序运行结果如下:
- <?php echo 'Hello,world!'; ?>
如图:

注意:不过这种方式来使用PHP 脚本,系统不提倡这样做,系统提供了一个配置项PHP_OFF 来控制是否使用这种方式来控制
是否直接使用PHP 代码。系统默认不允许,所以这样子的PHP 代码无法运行。这个时候,你要让这种方式的PHP 代码运行,只需要在项目配置文件设置:
- 'PHP_OFF' = >true
即可。
php标签或者php代码里面就不能再使用标签(包括普通标签和Node标签)了,因此下面的几种方式都是无效的:
- <php><eq name='name' value='value'>value</eq></php>
PHP 编译后的代码为:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 06:05:22 */ ?>
- <?php <?php if(($name) == "value"): ?>value<?php endif; ?> ?>
如图:

程序运行结果是抛出异常:
如图:

Php标签里面使用了eq标签,造成了编译后的代码语法错误,因此无效。
- <php>if( {$sName} != 'DoYouHaoBaby' ) echo 'DoYouHaoBaby' ;</php>
程序运行后的编译的PHP 代码如下:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 06:10:22 */ ?>
- <?php if( <?php echo( $sName ); ?> != 'DoYouHaoBaby' ) echo 'DoYouHaoBaby' ; ?>
如图:

程序运行结果如下,抛出异常:
如图:

说明:Php标签里面使用了{$sName}普通标签输出变量 ,因此无效。从这里你看出来了吧,因为生成了双重PHP 标签造成程序运行错误。但是,这也不是没有好处的,你完全可以在其它标签中混入另一种标签。
我们可以在模板中使用:
- {~$framework['name']='The DoYouHaoBaby Framework !'}
- <php>if( $framework.name != 'DoYouHaoBaby' ) echo 'DoYouHaoBaby' ;</php>
程序运行后的PHP 编译代码:
- <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-12 06:19:01 */ ?>
- <?php $framework['name']='The DoYouHaoBaby Framework !' ; ?>
- <?php if( (is_array($framework)?$framework["name"]:$framework->name) != 'DoYouHaoBaby' ) echo 'DoYouHaoBaby' ; ?>
如图:

程序运行结果如下:
- DoYouHaoBaby
如图:

说明:简而言之,凡是能够自己生成的PHP 标签"<?php"和"?>"的语法都不能够在本标签中使用。好了,本文就到此结束。
