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

PHP检测请求变量列表是否为空(),php,Php,我只是想优化下面的代码。它是有效的,但我想看看是否有人有一个较短的方式来书写以下条件: if( !empty($_REQUEST['shipping_fname']) || !empty($_REQUEST['shipping_lname']) || !empty($_REQUEST['shipping_address1']) || !empty($_REQUEST['shipping_address2']) || !empty($_REQUEST['shipping_city']) |

我只是想优化下面的代码。它是有效的,但我想看看是否有人有一个较短的方式来书写以下条件:

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 */

}
如您所见,我正在检查一些请求变量。 如果其中有一个不是空的,那么我会继续剩下的。 (对于那些必须知道的人,如果传递了任何装运信息,我将在括号内进行验证。有时有人只发送第一个、最后一个和邮政编码


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

这将是更糟糕的性能,实际上我可能会坚持你的方法,但一个不太麻烦的替代方法可能是:

$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;
    } 
}

你说得很好。如果我的方法在性能上更好,我就接受它。但我确实喜欢你的array()替代方法。它几乎不会慢一点。比如,可能慢一纳秒。还有@tq你到底在说什么?in_array在这方面有什么帮助?
in_arra()
不工作,因为他检查了
$\u请求的独立键