PHP 6 全局变量已弃用?

Posted

技术标签:

【中文标题】PHP 6 全局变量已弃用?【英文标题】:PHP 6 Globals variables deprecated? 【发布时间】:2011-06-22 16:43:08 【问题描述】:

我已经阅读了有关诸如 $_SESSION$_GET$_POST 等全局变量被删除或至少在 php 6 中被弃用的内容。

这是真的吗?如果是这样,从会话或帖子中检索数据的替代方法是什么?

谢谢!

【问题讨论】:

有这样一个梗在流传,即“全局是邪恶的”,因此这种想法经常出现。 (相关)***.com/questions/4897990/… 【参考方案1】:

$_SESSION$_GET 等不是全局变量。它们实际上被称为超全局变量,并且不会在 PHP 6 中被弃用。

我想你听说寄存器全局变量将被弃用,这意味着变量中的数组项,如 $_GET 将被转换为变量,如:$_GET['id']$id。 Read more about register globals.

【讨论】:

感谢您告诉我$_SESSION 等实际上不是全局变量。【参考方案2】:

不,你读过一个谣言。一个错误的。

【讨论】:

【参考方案3】:

关于 PHP 6 的了解并不多,因此推测它没有多大意义。

也许您指的是删除register_globalssession_register()session_unregister()。在 PHP 5.3 中已弃用。

这些函数被弃用是有充分理由的,你真的不应该依赖它们。

【讨论】:

以上是关于PHP 6 全局变量已弃用?的主要内容,如果未能解决你的问题,请参考以下文章

php 全局变量 预定义变量

PHP 全局变量 $_REQUEST 的分析

PHP 全局变量 - 超全局变量

PHP 全局变量 - 超全局变量

php7中之局部变量,全局变量,超全局变量用法和区别

PHP 5 全局变量 - 超全局变量