PHP中调用别的文件的include函数,要如何传参?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP中调用别的文件的include函数,要如何传参?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1718字,纯文字阅读大概需要3分钟。
内容图文
一般是a.php
b.php
输出 ssss ?>
但是如果
a.php
f.php
b.php
请问这种情况下要如何传参?先谢谢。
回复内容:
一般是
a.php
b.php
输出 ssss ?>
但是如果
a.php
f.php
b.php
请问这种情况下要如何传参?先谢谢。
看起来好多文件好乱 ... 我们先不管这么多个文件的事情 ... 先把整个程序流程写在一个文件里吧 ..?
正常传递参数的场景如下 ...
<?php /* $var defined in a.php ... */ $var = 'ssss'; /* print $var out in b.php ... */ echo $var;
无法正常传递参数的场景如下 ...
<?php /* define a function in t.php ... */ function i( $path ) { /* print value out suppose if $path equals to 'a.php' ... */ echo $var; } /* define $var and call function in b.php ... */ $var = 'ssss'; i( 'a.php' );
事实上这么一写你就会发现 ... 参数无法传递的情况与是否使用了 include
完全无关 ...
唯一影响参数传递的原因叫做变量作用域 ... 这是编程的基础知识 ... 你可以参考链接 ...
现在弄明白了原因 ... 我们来考虑解决方案 ...
第一种办法 ... 不传参 ... 直接在函数内部调用全局变量 ... 方法有两种 ... 效果是一样的 ...
<?php function i( $path ) { echo $GLOBALS['var']; }
<?php function i( $path ) { global $var; echo $var; }
这两种方法都是绕过变量作用域让你可以在函数内部获得全局变量的引用 ... 注意是引用 ...
也就是如果你一不小心就会修改掉这个全局变量的值 ... 而在多数情况下这不是我们想要的 ...
第二种方法 ... 比第一种方法实现起来麻烦 ... 但是更加整洁可靠 ...
<?php /* make a new slot named $package ... */ function i( $path, array $package ) { /* extract our package ... */ extract( $package ); /* print just like your are in global scope ... */ echo $var; } /* call function i() like this ... */ i( 'a.php', [ 'var' => 'ssss' ] );
不使用 global
... 随需随用 ... 每次调用函数的时候把变量带进去 ... 这是推荐的写法 ...
就是这样啦 ...
可以参考一下 PHPTemplate 或者 Smarty 的实现。
使用时使用方法进行传递,调用时直接使用相应的 key 获取。
内容总结
以上是互联网集市为您收集整理的PHP中调用别的文件的include函数,要如何传参?全部内容,希望文章能够帮你解决PHP中调用别的文件的include函数,要如何传参?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。