PHP:如何从数组foreach生成变量

时间:2017-03-21 14:17:10

标签: php arrays variables foreach

是否可以从数组或列表生成变量名以避免重复? 我从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块?

2 个答案:

答案 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]);

}