PHP 5.4.0 - 注册Globals已弃用

时间:2012-04-14 23:12:47

标签: php

我浏览了PHP网站上的页面,说全局变量将在5.4.0中折旧。据我所知,$ MyFormPost是$ _POST ['MyFormPost']和$ _GET ['MyFormPost']的全局变量,但我想知道如果我们的网站在5.4.0中也被视为折旧,我们的网站是否已开发。

我们有一个类,其内容已经发布在下面,我们可以通过我们的应用程序访问所有常见的类。因此,如果我们想要访问用户浏览器信息以查看他们在任何其他类或文件中使用的移动设备,我们只需调用$ gb-> BrowserData-> get_MobileDevice()。我们是否需要开始改变我们网站的构建方式?

$gb = new GlobalData;

global $BrowserData;
$BrowserData = new BrowserType();

if ($gb->BrowserData->get_MobileDevice()=='iPhone') {

}

GlobalData.class.php

<?php
class GlobalData {
        public function __get($name) {
            if (isset($GLOBALS[$name]))
                return $GLOBALS[$name];
        }
}
?>

1 个答案:

答案 0 :(得分:3)

那不是register_globals;你不必担心。默认情况下它已经从PHP 4.2开始关闭了,现在它被删除了。 Here's a description of what register_globals actually does - 基本上将所有请求变量抛出到全局变量中。一个非常坏主意。

虽然我仍然建议使用global $somevariable;将全局变量引入当前范围,而不是使用您正在使用的类。