我想我面临的问题很常见,但我在互联网上没有看到任何线程。
如果我使用isset($_POST)
,
- 它总是返回
true
吗 - 响应是否取决于我使用的PHP版本
$_POST
是一个变量吗?(毕竟这是一个超全局的"变量"(。因为在php.net文档中
isset()
仅适用于变量,因为传递任何其他内容都会导致解析错误
它总是会变成真的吗?
是的,即使页面是使用GET
方法打开的,或者POST
没有任何内容。
响应是否取决于我使用的PHP版本?
不,它没有(不确定非常旧的PHP版本(。
$_POST是一个变量吗?
是
isset((只处理变量,因为传递任何其他内容都会导致解析错误。
手册中明确提到了这一点,这样人们就不会试图做cheaky的事情。例如:
function getVarName() { return '_POST'; }
isset(getVarName());
isset('$_POST');
现在,为什么要检查是否设置了$_POST
。也许想检查是否发布了某个变量(例如电子邮件(,在这种情况下,你需要检查:
isset($_POST["email"])
isset($_POST);
将始终返回true。如果你想检查它是否包含什么,请使用empty($_POST);
响应是否取决于我使用的PHP版本?
无
$_POST是一个变量吗?
是
无论是否发布任何数据,$_POST
都将始终设置为数组。您可能正在寻找的是empty()
方法,以查看是否确实发布了任何数据,例如:
if(!empty($_POST)) {
// POST data was set
}
我建议使用以下选项之一:
if($_POST){
}
if(!empty($_POST)){
}
1、它总是会返回真的吗?
isset($_POST(将始终返回true。如果$_POST为空,它将返回false。
2、响应是否取决于我使用的PHP版本?
我不确定4.*以下的版本,但反响一直都是一样的。
3、$_POST是一个变量吗?
是的,它被认为是超全局的,比如:$GLOBALS、$_SESSION、$_POST、$_GET
- 它总是会变成真的吗
是的,这将永远是真正的
- 响应是否取决于我使用的PHP版本
未在PHP 4.3.0-5.4.10 上进行测试
$_POST
是一个变量吗
肯定是
验证$_POST
的更好方法是使用空
Isset()
仅当它包含某个值(可以是Zero 0(时才返回true。如果它没有任何值,则返回false。如果你想阻止(0(使用
if(isset($_POST) && $_POST)
如果只有它具有非零值,这将是真的
$_POST is global array
Response doesn't depend upon the version of PHP