【问题标题】:PHP: how to generate variables from array foreachPHP:如何从数组 foreach 生成变量
【发布时间】:2017-03-21 14:17:09
【问题描述】:

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

【问题讨论】:

  • 使用数组。更容易迭代。

标签: php arrays variables foreach


【解决方案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);

【讨论】:

  • 就是这样!非常感谢!
  • 不客气。不要忘记投票并将其标记为答案;)
【解决方案2】:

这样的?

$names = array('item1', 'item2','item3','item4');

foreach($names as $name)
{
    $$name = '';
    if (isset($_GET['submit']))
        $$name = empty($_GET[$name])?'*':htmlentities($_GET[$name]);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多