1.include admin_tpl('message');的含意:
admin_tpl的定义在include/admin/global.func.php内,如下:
function admin_tpl($file = 'index', $module = '')
{
global $mod,$MODULE,$CONFIG,$PHPCMS;
if(!$module) $module = $mod;
return PHPCMS_ROOT.$MODULE[$module]['path'].'admin/templates/'.$file.'.tpl.php';
}
因此我们传入的message其实是一个文件的名称,执行该函数的结果是返回一个文件的引用,而在前面加了include 则表示包含该文件。但跟直接include一个文件不同,这样做多了一些有趣的东西,如执行如下代码:
$message="嘿嘿";
include admin_tpl('message');
则会在页面上打印出"嘿嘿";原因是include admin_tpl('message')会被解释成:
<?php //这是admin/templates/message.tpl.php的内容
defined('IN_PHPCMS') or exit('Access Denied');
include admin_tpl('header');
?>
<body>
<table cellpadding="2" cellspacing="1" border="0" align=center class="table_info" >
<caption>提示信息</caption>
<tr>
<td>
<?=$message?>
</td>
</tr>
</table>
</body>
</html>
而里面的$message又被解释成了上面的$message的值。这是不是实现了给message.tpl.php传参数的功能呢?