gpt4 book ai didi

PHP 5.3 支持奇怪的 '${}' 代码吗?

转载 作者:行者123 更新时间:2023-12-02 03:22:14 25 4
gpt4 key购买 nike

我刚刚升级到 PHP 5.3,并开始为新客户端支持旧网站。它似乎使用了相当奇怪的 PHP 代码,我以前从未遇到过。

在尝试访问 $_GET 或 $_REQUEST 变量时,开发人员使用了以下内容:${"variable_name"}

我收到由于 undefined variable 而生成的通知(可能是因为 PHP 未解析 ${"variable_name"} 样式代码)。

将其更改为 $_REQUEST['variable_name'] 按预期工作,但我无法查看他们的所有代码并更改它,因为该网站很大并且使用专有的布局方法。

有谁知道是否可以打开对这些标签/代码块的支持?我查看了 PHP.ini,其中提到了 ASP 样式标签和短标签,但启用这些没有效果(无论如何它们看起来完全不同,我只是认为值得一试)。

最佳答案

我认为该语法没有什么新内容:

$a = 10;
var_dump(${"a"});

工作得很好;-)


您的问题可能是由于之前 register_globals已启用(默认情况下,如果 PHP <= 4.something),现在已禁用 - 这对安全性有好处!

将 register_globals 设置为 On 时,$_REQUEST 中的任何变量都会作为变量自动注入(inject)到您的应用程序中——实际上,这取决于 variables_order配置选项,但这个几乎总是包括 Get、Post 和 Cookie,至少如此。

例如,如果有一个像 $_GET['my_var'] 这样的变量,那么您也会有一个 $my_var 变量...而且这个也可以使用语法 ${'my_var'}

进行访问


考虑到 register_globals 默认情况下是 Off,因为 PHP 4.2 之类的东西,并且应该在 PHP 6 中消失(如果我没记错的话),我建议不要重新激活它...至少,如果您有时间纠正/测试代码...

关于PHP 5.3 支持奇怪的 '${}' 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1323623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com