PHP检测Request变量列表是否为空()

时间:2012-04-01 04:16:47

标签: 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 */

}

如您所见,我正在检查一些Request变量。 如果其中任何一个不是空的,那么我会继续其余的。 (对于那些必须知道的人,如果传递任何送货信息,我会在括号内进行验证。有时候只会发送第一个,最后一个和拉链。

同样,它有效,只是想知道是否有人有更短的方法。

1 个答案:

答案 0 :(得分:2)

性能会更差,而且我可能会坚持你的方式,但是一个不那么繁琐的替代方案可能是:

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

如果你愿意,你也可以取消$ go:

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