一个困扰已久的问题

tczyp 2005-01-18 08:05:12
把php.ini里的register_globals设置为on 和在每一个页面里面都加上extract($_SESSION);extract($_POST);extract($_GET);效果应该是一样的,但有什么本质上的不同吗?
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-神仙- 2005-01-18
  • 打赏
  • 举报
回复
楼上说的就是全局变量之灾难
ademeng 2005-01-18
  • 打赏
  • 举报
回复
我原来也是把register_globals设置为on的
但因为php采用的是弱变量,弱变量在使用时的确很方便,但在以后维护修改时会出现一些问题,比如:有时候你不知道这个变量是从什么地方来的,而且容易把已经付值的变量给覆盖了,
所以用register_globals设置为off后在使用时可能要多敲几个字,但在以后读程序时,程序的可读性更好一些,特别是在使用会话级变量的时候。我想这也是默认的register_globals设置为off的原因!
tczyp 2005-01-18
  • 打赏
  • 举报
回复
这我也知道,但是如果他们本质上是一样的,那么谁都愿意直接把register_globals设置为on 这方便得多,但是为什么大多数人不支持这样做呢?
多菜鸟 2005-01-18
  • 打赏
  • 举报
回复
register_globals设置为on 时,$_POST["abc"] 在程序中直接用 $abc;$_GET["abc"] 在程序中直接用 $abc;等等
register_globals设置为off 时,则不同,各归各的。
多菜鸟 2005-01-18
  • 打赏
  • 举报
回复
在OFF 状态下会比较安全一些,变量不会被同名URL变量复盖。
加上$_POST,$_GET,$_SESSION之后,不仅读性好一些,通用性也好得多。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧