概论为什么PHP全局变量不能生效_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了概论为什么PHP全局变量不能生效_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1692字,纯文字阅读大概需要3分钟。
内容图文
![概论为什么PHP全局变量不能生效_PHP教程](/upload/InfoBanner/zyjiaocheng/174/372ec110778546b4a63ab3a58d3e163c.jpg)
但在实际操作时,会接连碰到几次全局变量无效的郁闷的事,下面就重点看一下PHP全局变量不能生效的原因及解决办法。
1.PHP全局变量不能生效错误重现
问题出现在用我的简易框架时,在view中使用原来第三方定义好的函数时(此函数比较独立),下面模拟一下:
t1.php
- < ?
- run(); //执行
- function run(){
- include 'func.php';
- showGlobal();
- }
- ?>
func.php1
- < ?
- $vars = 'I am global!';
- function showGlobal(){
- global $vars;
- print('我使用全局变量:'.$vars);
- }
- ?>
很简单的两个文件(第一次发现问题时,远比这复杂,在一层层排错后,得出最少化的问题重现环境),func.php是定义好的第三方函数,该函数使用了一些全局变量,如果这时把这两个文件放在一起,执行一下t1.php,会发现showGlobal里的$vars是显示不出来的,global失效了?
2.PHP全局变量不能生效错误原因
搜索后发现,php.com上很早就有人提出过,也有人给出了解释:
原来,在t1.php的run函数中include func.php时,func.php中的变量$vars的作用域只是在run之内,而在showGlobal中使用global声明的$vars是要求属于t1.php的不是run函数的,所以为空)
3.PHP全局变量不能生效解决方法
知道原因后,解决就很简单,可以把include 从run中移出来,这样,func.php中的$vars就属于t1.php了;也可以在run里用global声明一下$vars,这样也可以把原来属于run的$vars声明为全局(属于t1.php);
虽然问题可以简决,但用起来还是很不爽, 因为在我的phpec框架中,include的情况比较普遍,不可能把view中按需include的移到外层去,使用global的话,我在使用第三方函数时,又不会也不想去了解它用了什么全局变量,而且,层次结构一多,就….
PHP全局变量不能生效的原因总结:
1)尽量减少多级和函数中include文件.
2)尽量不用全局变量
http://www.bkjia.com/PHPjc/446107.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446107.htmlTechArticle对于一个新手在实际操作 但在实际操作时,会接连碰到几次全局变量无效的郁闷的事,下面就重点看一下PHP全局变量不能生效的原因及解决...
内容总结
以上是互联网集市为您收集整理的概论为什么PHP全局变量不能生效_PHP教程全部内容,希望文章能够帮你解决概论为什么PHP全局变量不能生效_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。