检查是否已设置POST变量的最有效方法是什么?
例如,我正在从第 1 页收集 10 个变量,如果设置了它们,我想将该数据存储在第 2 页上。如果没有,我想分配"不可用"。
我目前正在使用if !empty
,但是似乎必须有一种更简单/更有效的方法,我对php很陌生,所以任何建议都值得赞赏。
示例代码;
if (!empty($_POST["book"])) {
$book= $_POST['book'];
}else{
$book= 'not available';
}
if (!empty($_POST["author"])) {
$author = $_POST['author'];
}else{
$author= 'not available';
}
if (!empty($_POST["subtitle"])) {
$subtitle= $_POST['subtitle'];
}else{
$subtitle= 'not available';
}
etc...
etc...
etc...
使用循环和变量。
$fields = array('author', 'book', 'subtitle', ....);
foreach($fields as $field) {
if (isset($_POST[$field])) {
$$field = $_POST[$field]; // variable variable - ugly, but gets the job done
} else {
$$field = 'not available';
}
}
通常我使用此辅助函数:
function defa($array, $key, $default){
if(isset($array[$key])){
return $array[$key];
}else{
return $default;
}
}
用法:
$book = defa($_POST, 'book', 'Not available');
或者,如果仅使用 $_POST 数组,则可以简化:
function post_defa($key, $default){
if(isset($_POST[$key])){
return $_POST[$key];
}else{
return $default;
}
}
用法:
$book = post_defa('book', 'Not available');