2012-04-01 13 views
3

私はちょうど以下のコードを最適化するつもりです。それは動作しますが、私は誰が次の条件を書くための簡単な方法を持っているかどうかを確認したい:リクエスト変数のリストが空であるかどうかを検出するPHP

if(
!empty($_REQUEST['shipping_fname']) || 
!empty($_REQUEST['shipping_lname']) || 
!empty($_REQUEST['shipping_address1']) || 
!empty($_REQUEST['shipping_address2']) || 
!empty($_REQUEST['shipping_city']) || 
!empty($_REQUEST['shipping_state']) || 
!empty($_REQUEST['shipping_zip']) || 
!empty($_REQUEST['shipping_country'])){ 

     /* do stuff in here */ 

} 

あなたが見ることができるように、私がチェックしていますいくつかのリクエスト変数があります。 いずれかが空でない場合は、残りの部分を続けます。 (配送情報が渡された場合は、括弧の中に妥当性検査を行いますが、誰かが最初、最後、および郵便番号を送信する場合もあります)

もう一度、短い方法論を持っている

答えて

2

それはより悪いパフォーマンスになり、本当に私はおそらくちょうどあなたの方法に固執するだろうが、負担が少ない選択肢は次のようになります。あなたはまた、$行くと離れて行うことができます

$arr = array('shipping_fname', 'shipping_lname', '...'); 
$go = false; 
foreach ($arr as $f) { if (!empty($_REQUEST[$f])) { $go = true; break; } } 
if ($go) { ... } 

必要ならば:

$arr = array('shipping_fname', 'shipping_lname', '...'); 
foreach ($arr as $f) { 
    if (!empty($_REQUEST[$f])) { 
     /* do stuff in here */ 
     break; 
    } 
} 
+0

あなたは良い点を作っています。私の方法がパフォーマンスの方が良ければ、私はそれを吸うだけです。しかし、私はあなたの配列()の代替が好きです。 – coffeemonitor

+0

これはやや遅くなるでしょう。同様に、おそらくナノ秒が遅くなる。そして、あなたは何を話していますか? in_arrayはどのように役立ちますか? – Corbin

+0

'$ _REQUEST'の独立キーをチェックするので、' in_arra() 'は動作しません。 –

関連する問題