<?
//为了做一个类似于include的函数label(),原来需要写include("temple/deafult/label/foot.html"),现在的函数可以写成label("foot")
function label($tpl) {
$templeurl="temple/deafult/";
include ($templeurl.'label/'.$tpl.'.html');
}
?>
原来需要写include("temple/deafult/label/foot.html"),现在的函数可以写成label("foot").
结果我 foot.html确实被include了,但是出现一个问题,但是foot.html语句里如果包含php代码就不被执行。
换成实例:
my.php代码如下
<?
$abc="123";
function label($tpl) {
$templeurl="temple/deafult/";
include ($templeurl.'label/'.$tpl.'.html');
}
include("temple/deafult/label/foot.html");
//label("foot"); //我的问题是要用这个代码替换上面的代码达到完全一样的效果
?>
temple/deafult/label/foot.html代码如下
<html>
<body>
$abc的结果为<? print $abc; ?>
</body>
</html>
其中my.php用注释那里的2个代码显示的效果会不一样,
用label("foot"); 页面只显示“$abc的结果为”
而用include("temple/deafult/label/foot.html");页面显示 “$abc的结果为123”
另外:我上面的代码不考虑语法上小错误,这是根据我需要的一个问题,临时编写出来的代码,只是为了说清楚我现在遇到的问题,可能会有语法小错误,就不要给我指正小错误了。
主要是帮我看看,有没办法通过label("foot");这个自定义的函数包含的页面里的php代码可以执行。
就是说,帮我编写一段代码。设计一个函数,这个函数只需要2个功能
1、调用另外一个页面的代码,如foot.html,就想include一样的效果,但是include(????????)内容太多不方便
2、所调用的页面,里面的php代码可以照样执行,
我找到解决问题的办法了,但是现在又出现了另外一个问题.
就是在my.php中 将$abc作为全局变量,加上global $abc;但是这样以来问题也来了,我现在所需求的变量太多了,难不成加几十个 global $.......
你在一个function里将另外一个文件include,那么“另一个文件”里的PHP都是在你的function的作用域里执行,你的“另一个文件”里将$abc输出,但在你的function里,并不存在$abc,所以会输出空。
1、你这样做,只是为了少打几个字母,而引来很多问题,如出错率高了,可维护性低了。
2、你确实要省那些代码,你可以这么做:
写一个方法:
function fun1($tpl){
$templeurl="temple/deafult/";
return $templeurl.'label/'.$tpl.'.html';
}
在你的my.php里:
include(fun1('foot'));
全部被引用进去了,但是用自定义函数引用的时候php脚本不执行,换回系统自带函数就能执行php脚本