我只是想优化下面的代码。它是有效的,但我想看看是否有人有一个较短的方式来写以下条件:
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 */
}
正如您所看到的,我正在检查一些请求变量。如果其中任何一个不是空的,那么我会继续剩下的。(对于那些必须知道的人,如果任何运输信息通过,我会在括号内进行验证。有时有人只发送第一个、最后一个和zip。
同样,它是有效的,只是想知道是否有人有一个更短的方法。
这将是更糟糕的性能,实际上我可能会坚持你的方式,但一个不那么麻烦的替代方案可能是:
$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;
}
}