我需要检查使用单个语句isset是否存在$_POST
变量。
if (isset$_POST['name'] && isset$_POST['number'] && isset$_POST['address'] && etc ....)
有没有简单的方法来实现这一目标?
我需要检查使用单个语句isset是否存在$_POST
变量。
if (isset$_POST['name'] && isset$_POST['number'] && isset$_POST['address'] && etc ....)
有没有简单的方法来实现这一目标?
使用简单方式与array_diff和array_keys
$check_array = array('key1', 'key2', 'key3');
if (!array_diff($check_array, array_keys($_POST)))
echo 'all exists';
你是否需要满足条件,如果其中任何一个被设置或全部?
foreach ($_POST as $var){
if (isset($var)) {
}
}
$variables = array('name', 'number', 'address');
foreach($variables as $variable_name){
if(isset($_POST[$variable_name])){
echo 'Variable: '.$variable_name.' is set<br/>';
}else{
echo 'Variable: '.$variable_name.' is NOT set<br/>';
}
}
或者,通过每个$_POST
键/对
foreach($_POST as $key => $value){
if(isset($value)){
echo 'Variable: '.$key.' is set to '.$value.'<br/>';
}else{
echo 'Variable: '.$key.' is NOT set<br/>';
}
}
最后一个迭代的方式可能是你最简单的方式 - 如果你的任何$_POST
变量的改变,你并不需要更新使用新名称的数组。
我想检查是否存在变量,而不是NOT NULL。那么你的第二个选择是正确的? – PHP
去第一个 - 把变量放在数组中,并检查是否有一个'$ _POST'变量匹配 – ajtrichards
那么,如何在if条件中使用此代码的结果呢? – sectus
$variableToCheck = array('key1', 'key2', 'key3');
foreach($_POST AS $key => $value)
{
if(in_array($key, $variableToCheck))
{
if(isset($_POST[$key])){
// get value
}else{
// set validation error
}
}
}
此代码只是检查$ _POST变量是否在定义的数组中。但不检查定义数组中的所有变量。因此这个代码对于这个问题的目的是没有用的。 – PHP
这段代码首先遍历所有post变量,并检查当前变量是否应该被验证,如果它应该验证,那么在你的问题中需要isset()检查。 –
你正在测试25帖子变量,如果你发送更多的变量在你的帖子,如30(隐藏的领域,后按钮等)如何。然后你必须找到要检查的25个。 –
if isset(($_POST['name']) && ($_POST['number']) && ($_POST['address']))
您也可以使用此功能。它可能更容易。
这是行不通的,'isset()'仅适用于变量。您的示例构建一个布尔表达式,然后尝试使用isset测试结果(true或false)。布尔表达式的结果将取决于'$ _POST'变量的内容。 – martinstoeckli
以下是一个自定义函数,它将所需张贴元素的数组作为参数,如果它们全部张贴并且没有任何一个是空字符串,则返回true字符串''
或者如果至少存在其中一个,则返回false不是:
function checkPosts($posts){
if (!is_array($posts)) return "Error: Invalid argument, it should be an array";
foreach ($posts as $post){
if (!isset($_POST[$post]) || $_POST[$post] == '') return false;
}
return true;
}
// The structure of the argument array may be something like:
$myPosts = array('username', 'password', 'address', 'salary');
为什么要检查25 $ _Post? –
我有25个变量,例如 – PHP
我只是想知道你是否可以在逻辑上减少这个操作,比如检查提交按钮$ _POST ['submit']。虽然,这是我所有的猜测,如果你不能跳过这个检查@ajtrichards的答复是好的。 –