是否可以从数组或列表生成变量名以避免重复? 我从html表单中提取项目值,这是代码的摘录:
$item1 = $item2 = $item3 = $item4 = "";
if (isset($_GET["submit"])) {
if (!empty($_GET["item1"])) { $item1 = htmlentities($_GET["item1"]);} else { $item1="*"; }
if (!empty($_GET["item2"])) { $item2 = htmlentities($_GET["item2"]);} else { $item2="*"; }
if (!empty($_GET["item3"])) { $item3 = htmlentities($_GET["item3"]);} else { $item3="*"; }
if (!empty($_GET["item4"])) { $item4 = htmlentities($_GET["item4"]);} else { $item4="*"; }
}
是否可以制作项目数组并使用foreach生成if块?
答案 0 :(得分:1)
考虑在数组中保存值
对于整个$_GET
$items = [];
foreach($_GET as $key=>$val) {
$items[$val] = !empty($val) ? htmlentities($val) : '*';
}
print_r($items);
对于$elements
$items = [];
$elements = array('item1','item2');
foreach($elements as $val) {
$items[$val] = !empty($_GET[$val]) ? htmlentities($_GET[$val]) : '*';
}
print_r($items);
答案 1 :(得分:0)
这样的事情?
$names = array('item1', 'item2','item3','item4');
foreach($names as $name)
{
$$name = '';
if (isset($_GET['submit']))
$$name = empty($_GET[$name])?'*':htmlentities($_GET[$name]);
}