我正在开发一个使用 register_globals
的框架。我本地的 php 版本是 5.4。
我知道 register_globals
自 PHP 5.3.0 起已弃用并在 PHP 5.4 中删除,但我必须使此代码在 PHP 5.4 上运行。
有没有什么方法可以在较新版本的 PHP 上模拟功能?
最佳答案
您可以使用 extract 模拟 register_globals
在全局 scope :
extract($_REQUEST);
或者使用global和variable variables把它放到独立的函数中
function globaling()
{
foreach ($_REQUEST as $key => $val)
{
global ${$key};
${$key} = $val;
}
}
如果您有一个已发布的应用程序并且不想更改其中的任何内容,您可以创建 globals.php
文件
<?php
extract($_REQUEST);
然后添加auto_prepend_file .htaccess 指令(或在 php.ini 中)
php_value auto_prepend_file ./globals.php
此后代码将在每次调用时运行,应用程序将像旧设置一样运行。
关于php - 如何在 PHP 5.4 或更新版本中模拟 register_globals?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16706098/