检查POST变量是否已设置的最有效方法是什么?
例如,我从 Page 1 收集10个变量,如果已设置,我想将这些数据存储在 上。如果没有,我想指定' not available '。
我目前正在使用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...
答案 0 :(得分:9)
使用循环和变量变量。
$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';
}
}
答案 1 :(得分:0)
通常我使用这个辅助函数:
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');