首页 > 代码库 > $_GET($HTTP_GET_VARS)和$_POST($HTTP_POST_VARS)的区别

$_GET($HTTP_GET_VARS)和$_POST($HTTP_POST_VARS)的区别

$HTTP_GET_VARS与$_GET   $HTTP_POST_VARS与$_POST

$HTTP_POST_VARS可以用于3.0及以下版本,$HTTP_POST_VARS不是自动全局变量

$_POST只能用于4.0及以上版本中

为了你的代码应用可以更广泛,请写成$HTTP_POST_VARS


HTTP POST 变量:$_POST
注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_VARS。 

通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。 

这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中您不需要使用 global $_POST; 来访问它,就如同使用 $HTTP_POST_VARS 一样。 

$HTTP_POST_VARS 包含着同样的信息,但是不是一个自动全局变量。(注意: HTTP_POST_VARS 和 $_POST 是不同的变量,PHP 处理它们的方式不同。) 
在PHP5.X版中,默认的php设置是不允许使用HTTP_POST_VARS变量的,这样将一些原来运行在PHP4.X版中的程序就会出现Notice: Undefined variable: HTTP_POST_VARS 这样的错误,只需要修改php.ini文件中的register_long_arrays就可以了,默认是Off,将它改成On就可以了!

HTTP POST 变量:$_POST
注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_VARS。 当然,现在普遍是PHP5了,一般都不用这样的写法
如果要兼容PHP4,可以参考discuz源码

 

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

 

HTTP GET 变量:$_GET
注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_GET_VARS。 
通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量。 
这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_GET; 来访问它,就如同使用 $HTTP_GET_VARS 一样。 
$HTTP_GET_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_GET_VARS 和 $_GET 是不同的变量,PHP 处理它们的方式不同)。 
如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_GET 和 $HTTP_GET_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。 



HTTP POST 变量:$_POST
注: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_VARS。 
通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。 
这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_POST; 来访问它,就如同使用 $HTTP_POST_VARS 一样。 
$HTTP_POST_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_POST_VARS 和 $_POST 是不同的变量,PHP 处理它们的方式不同)。 
如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_POST 和 $HTTP_POST_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量

实际应用:当表单很多时,可能用数组的形式来把值传递过来,再配合一些类来进行操作

查看情况:print_r($_POST);

$_GET($HTTP_GET_VARS)和$_POST($HTTP_POST_VARS)的区别