2016-07-11 24 views
-2

現在、以下のPHPコードを使用して、いくつかの変数をターゲット(変更)しています。これが機能しますが、それを短縮する方法はありますか?私はそこには短い方法があると推測していますが、PHPの知識はありません。複数の目標値/変数を1つにまとめる

  if($form_id == 10767){ 
      if($data['element_id'] == 13){ 
       if(empty($data['value'])){ 
        $data['value'] .= ''; 
       }else{ 
        $data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>'; 
       } 
      } 
     } 

     if($form_id == 10767){ 
      if($data['element_id'] == 14){ 
       if(empty($data['value'])){ 
        $data['value'] .= ''; 
       }else{ 
        $data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>'; 
       } 
      } 
     } 

     if($form_id == 10767){ 
      if($data['element_id'] == 16){ 
       if(empty($data['value'])){ 
        $data['value'] .= ''; 
       }else{ 
        $data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>'; 
       } 
      } 
     } 

     if($form_id == 10767){ 
      if($data['element_id'] == 17){ 
       if(empty($data['value'])){ 
        $data['value'] .= ''; 
       }else{ 
        $data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>'; 
       } 
      } 
     } 

これらのelement_idを別々にターゲティングするのではなく、1行にまとめることは可能でしょうか?このような

何か:

if($data['element_id'] == 13,14,16,17) 

私はいくつかのことを自分自身を試してみましたが、毎回私はエラーを取得したり、物事を破ります。

ありがとうございます。

+0

はい、しかし、それはコード – RiggsFolly

答えて

2

あなたは配列にあなたの目標をロードし、それを私たちin_array(needle, haystack)それが簡単に低減することができます。

IFの代わりに3項演算子を使用すると、さらに削減できます。

$target_ids = array(13,14,16,17); 
if($form_id == 10767){ 
    if(in_array($data['element_id'], $target_ids)) { 
     $data['value'] = empty($data['value']) ? '' : '<p style="font-size:13px;">'.$data['value'].'</p>'; 

    } 
} 
+1

あなたは勝つ。 'in_array()'は私の例よりも素敵なタッチ(読みやすい)でした。 :) –

2

あなたが現在必要とされていない同じif文に数回、使用している:そして、あなたはdocumentation about "if"Logical Operatorsになっているはずですし、あなたが書く方法を見つけるだろう を「または」:

if($form_id == 10767){ 
    if($data['element_id'] == 13 || $data['element_id'] == 14 || ...etc...){ 
     if(!empty($data['value'])){ 
      $data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>'; 
     } 
    } 
} 

$data['value'] .= '';も何もしないので、空にしました。 (気づく!値が空でないであれば、それは検証することを意味empty()前。)

+0

を読んだ後に明らかになるはずです。私は間違ったことを理解しています...! 私は実際に||を使用しましたと数字が、私は "$ data ['element_id'] ==" - 文字列を追加しませんでした。 ありがとうございます。 – Joanne

関連する問題