如何使用isset()检查多个$ _POST变量是否存在?

PHP*_*PHP 4 php post superglobals

我需要$_POST使用单个语句isset 检查变量是否存在.

if (isset$_POST['name']  &&  isset$_POST['number']  &&  isset$_POST['address']  &&  etc ....)
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来实现这一目标?

sec*_*tus 14

使用array_diffarray_keys的简单方法

$check_array = array('key1', 'key2', 'key3');
if (!array_diff($check_array, array_keys($_POST)))
    echo 'all exists';
Run Code Online (Sandbox Code Playgroud)

  • 请注意,提交按钮的名称也必须包含在数组中。 (2认同)

ajt*_*rds 5

$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/>';
   }

}
Run Code Online (Sandbox Code Playgroud)

或者,遍历每个$_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/>';
   }

}
Run Code Online (Sandbox Code Playgroud)

最后一种方法可能是您最简单的方法 - 如果您的任何$_POST变量发生更改,则无需使用新名称更新数组.