gpt4 book ai didi

php - $HTTP_XXX_VARS 与 PHP 中的 $_XXX 不同吗?

转载 作者:可可西里 更新时间:2023-11-01 12:37:32 25 4
gpt4 key购买 nike

下面的代码是否有意义?:

$t_server = isset( $_SERVER ) ? $_SERVER : $HTTP_SERVER_VARS;

据我了解,$HTTP_XXX_VARS$_XXX 相同,只是 $HTTP_XXX_VARS 已弃用。因此,我不明白上面的代码。

$HTTP_XXX_VARS 未被弃用的旧系统中是否存在两个变量不同的情况?

最佳答案

$HTTP_SERVER_VARS$_SERVER是不同的变量(如果两者都已设置)。它们最初包含相同的值,但不同的是,脚本对其中一个所做的更改不会影响另一个。

superglobals ($_GET$_POST$_SERVER 等)在 PHP 4.1 中引入。长命名变量($HTTP_GET_VARS$HTTP_SERVER_VARS 等)在 PHP 4.1 中已弃用,并在 PHP 5.4 .

PHP 5.0 引入了配置设置 register_long_arrays用于告诉 PHP 创建(或不创建)旧的长名称变量($HTTP_GET_VARS 和其他)。该设置在 PHP 5.3 上已弃用,并在 PHP 5.4 上完全删除(连同长名称数组)。

如您所见,在 PHP 4.0 和 PHP 5.4 之间,程序员可以使用这些变量的一个或两个版本。

行:

$t_server = isset( $_SERVER ) ? $_SERVER : $HTTP_SERVER_VARS;

利用新的超全局变量 $_SERVER,如果可用(在 PHP >= 4.1 上),但它会退回到旧的 $HTTP_SERVER_VARS 如果它在旧的 PHP 上运行。它可能是几年前编写的,当时 PHP 4 仍在许多服务器上使用。

除了遇到PHP 4.0这种不太可能发生的情况外,您可以安全地将上面的行更改为:

$t_server = $_SERVER;

或者到处使用 $_SERVER 而不是 $t_server

关于php - $HTTP_XXX_VARS 与 PHP 中的 $_XXX 不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29989005/

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