2017-03-21 9 views
0

繰り返しを避けるために、配列やリストから変数名を生成することはできますか? 私はHTMLフォームから項目値を引っ張っています、これはコードの抜粋です。PHP:配列foreachから変数を生成する方法

$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のであればブロックを生成することが可能でしょうか?

+0

アレイを使用してください。反復するのがずっと簡単です。 –

答えて

1

このような$elements

$items = []; 
$elements = array('item1','item2'); 

foreach($elements as $val) { 
    $items[$val] = !empty($_GET[$val]) ? htmlentities($_GET[$val]) : '*'; 
} 

print_r($items); 
+0

それだけです!どうもありがとうございました! –

+0

ようこそ。 upvoteとそれを答えとしてマークすることを忘れないでください;) – Mazz

0

何かにいくつかの事前定義された要素については、全体$_GET

$items = []; 
foreach($_GET as $key=>$val) { 
    $items[$val] = !empty($val) ? htmlentities($val) : '*'; 
} 

print_r($items); 

の配列

に値を保存考えてみましょうか?

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

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

} 
関連する問題