PHP5.3中的PHP注册全局支持?

PHP5.3中的PHP注册全局支持?,php,Php,我一直在使用PHP5.2和register_globals。现在我转到PHP5.3,我知道我必须更改一些代码。我已经读过了,但我仍然不清楚我必须做出什么样的改变 在5.2中,我使用 session_start(); 在我表格的顶端。在5.3中,我还需要这样做吗 我目前也使用这样的变量 $_SESSION[php_g_name"] = "John"; 或 在5.3中继续使用可以吗?如果不是,vars的语法是什么 感谢您的澄清。是的,您仍然需要在每个文件的顶部设置会话开始。 对于变量,$\u S

我一直在使用PHP5.2和register_globals。现在我转到PHP5.3,我知道我必须更改一些代码。我已经读过了,但我仍然不清楚我必须做出什么样的改变

在5.2中,我使用

session_start();
在我表格的顶端。在5.3中,我还需要这样做吗

我目前也使用这样的变量

$_SESSION[php_g_name"] = "John";

在5.3中继续使用可以吗?如果不是,vars的语法是什么


感谢您的澄清。

是的,您仍然需要在每个文件的顶部设置会话开始。 对于变量,
$\u SESSION[“php\u g\u name”]
将起作用,但是
$php\u g\u name
将不起作用,除非您声明
$php\u g\u name=$\u GET(或SESSION)[“php\u g\u name”]
是php最具标志性但也是最受诟病的“功能”之一。正是这一点让PHP在早期获得了如此多的关注和使用

你可以这样做

<?php
 //for a url example.com/myfile.php?UserName=Toby
 echo "Hello $UserName";
?>

它使得从_get和_POST以及(在您的案例中)会话访问变量变得非常容易

然而它的安全性非常差,并且在PHP4之后默认关闭(有人会确切地告诉我)

基本上,它对您意味着,如果您这样做是为了访问会话变量

<?php
 session_start();
 echo $php_g_name ;

那太好了。但是如果没有register\u globals,
$php\u g\u name='foo'
将无法工作。你一开始就使用register_globals,真丢脸。这是(而且一直以来都是)PHP最愚蠢的设计“特性”。我使用的是echo$_SESSION[PHP_g_name”]方法,而不是echo$PHP_g_name方法,所以看起来我的代码可以迁移到PHP5.3+,对吧?应该可以,但可能先在测试服务器上试试,看看是否有其他问题。
<?php
 session_start();
 echo $php_g_name ;
<?php
 session_start();
 echo $_SESSION["php_g_name"] ;