为了账号安全,请及时绑定邮箱和手机立即绑定

PHP中调用别的文件的include函数,要如何传参?

PHP中调用别的文件的include函数,要如何传参?

慕无忌1623718 2019-04-06 16:57:42
一般是a.phpb.php但是如果a.phpf.phpb.php请问这种情况下要如何传参?先谢谢。
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

看起来好多文件好乱...我们先不管这么多个文件的事情...先把整个程序流程写在一个文件里吧..?正常传递参数的场景如下.../*$vardefinedina.php...*/
$var='ssss';
/*print$varoutinb.php...*/
echo$var;无法正常传递参数的场景如下.../*defineafunctionint.php...*/
functioni($path){
/*printvalueoutsupposeif$pathequalsto'a.php'...*/
echo$var;
}
/*define$varandcallfunctioninb.php...*/
$var='ssss';
i('a.php');事实上这么一写你就会发现...参数无法传递的情况与是否使用了include完全无关...唯一影响参数传递的原因叫做变量作用域...这是编程的基础知识...你可以参考链接...现在弄明白了原因...我们来考虑解决方案...第一种办法...不传参...直接在函数内部调用全局变量...方法有两种...效果是一样的...functioni($path){
echo$GLOBALS['var'];
}functioni($path){
global$var;
echo$var;
}这两种方法都是绕过变量作用域让你可以在函数内部获得全局变量的引用...注意是引用...也就是如果你一不小心就会修改掉这个全局变量的值...而在多数情况下这不是我们想要的...第二种方法...比第一种方法实现起来麻烦...但是更加整洁可靠.../*makeanewslotnamed$package...*/
functioni($path,array$package){
/*extractourpackage...*/
extract($package);
/*printjustlikeyourareinglobalscope...*/
echo$var;
}
/*callfunctioni()likethis...*/
i('a.php',[
'var'=>'ssss'
]);不使用global...随需随用...每次调用函数的时候把变量带进去...这是推荐的写法...就是这样啦...
                            
查看完整回答
反对 回复 2019-04-06
?
翻阅古今

TA贡献1780条经验 获得超5个赞

可以参考一下PHPTemplate或者Smarty的实现。
使用时使用方法进行传递,调用时直接使用相应的key获取。
                            
查看完整回答
反对 回复 2019-04-06
  • 2 回答
  • 0 关注
  • 361 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信