一般是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...随需随用...每次调用函数的时候把变量带进去...这是推荐的写法...就是这样啦...
添加回答
举报
0/150
提交
取消