PHP会话变量自动分配给常规变量

时间:2012-03-08 23:44:22

标签: php session

我在IX虚拟主机托管,我遇到了让我感到奇怪的东西。我的所有$ _SESSION变量都自动分配给同名的常规变量。这是正常的PHP行为吗?我在php.net手册中查找了它并没有找到答案。这是一个示例脚本:

<?php
$_SESSION['myvar'] = "hello";
echo $myvar; // after a page refresh, displays hello

$myvar = "goodbye";
echo $_SESSION['myvar']; // displays goodbye
?>

在我的本地主机上,我收到了一个错误信息,例如未定义的变量:$ myvar但是在IX,脚本有效!有害或正常的PHP行为?提前谢谢。

1 个答案:

答案 0 :(得分:3)

此“功能”由名为register_globals的php.ini指令控制。默认情况下,它已从PHP 4.2中禁用,并在PHP 5.4中完全删除。

除非您有遗留代码,否则我会诚挚地建议您如果可以将其关闭。可以说,安全隐患非常重要。