Discuz教程网

建议在class_core.php中添加对$_G的声明

[复制链接]
authicon zVYjbOpO 发表于 2013-3-2 19:40:40 | 显示全部楼层 |阅读模式
在调阅X3.0源代码的过程中发现找不到类似$_G=array()这样的的声明语句,使很多同学困惑于这个变量,我也是,然后我开始调试代码...到底$_G是在何处定义的呢?从论坛搜出来的贴子有很多同学在问这个问题,其实大家就想在不调试代码的时候知道这个答案,开发组的同学有回答,但都有装B的嫌疑,从不正面回答,让我们去看class_core.php,我知道这个文件几乎被所有文件包含,从头到脚看一遍我还是不知道这个变量在哪定义的。经过调试我可以确信开发人员没有很明确的定义过这个变量,最早出现$_G的地点是class_core.php调用/source/class/discuz/discuz_application.php中定义的类初始化环境时即self:_app = discuz_application::instance();中调用了_init_env()方法,这个方法中有一句global $_G起到了先声明全局变量$_G后再引用全局$_G的作用。在强调代码可读性的今天,个人觉得这种做法并不友好。几乎所有文件都能见到global $_G引用全局变量这样的语句,是问不通过调试谁能知道到底哪句global $_G是用来定义$_G这个变量的呢?



上一篇:我没有在站务区发帖权限,我只想知道我的帖子去哪里了
下一篇:想找这个一样的首页N
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 17:33

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表