我需要$_POST
使用单个语句 isset 检查变量是否存在。
if (isset$_POST['name'] && isset$_POST['number'] && isset$_POST['address'] && etc ....)
有什么简单的方法可以实现这一目标吗?
我需要$_POST
使用单个语句 isset 检查变量是否存在。
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';
$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
变量发生更改,您不需要使用新名称更新数组。
如果设置了其中任何一个或全部,您是否需要满足条件?
foreach ($_POST as $var){
if (isset($var)) {
}
}
$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
}
}
}
您要问的正是isset
页面中的内容
isset($_POST['name']) && isset($_POST['number']) && isset($_POST['address'])
是相同的:
isset($_POST['name'], $_POST['number'], $_POST['address'])
考虑到您已经拥有所有必需的密钥,如果您正在寻求一种更好或更实用的方法来断言这一点,那么您可以使用以下内容:
$requiredKeys = ['name', 'number', 'address'];
$notInPost = array_filter($requiredKeys, function ($key) {
return ! isset($_POST[$key]);
});
请记住,isset
不会返回与array_key_exists
以下是一个自定义函数,它将所需已发布元素的数组作为参数,如果它们都已发布并且没有任何一个是空字符串,则返回 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');
使用 Array从表单中收集数据,如下所示:
并在邮寄时处理您的表格,如下所示:
if(isset($_POST['name'])){
...
}
老帖子,但总是有用的
foreach ($_POST as $key => $val){
$$key = isset($_POST[$key]) ? $_POST[$key] : '';
}
if isset(($_POST['name']) && ($_POST['number']) && ($_POST['address']))
你也可以使用这个。这可能更容易。