在php中格式化long if语句

时间:2013-05-21 13:57:57

标签: php code-formatting

格式化以下代码行的更好的方法是什么。如果不格式化任何其他方法也会。

if (
    array_key_exists('type',$handle) &&
    array_key_exists('parent',$handle) &&
    array_key_exists('userName',$handle) &&
    array_key_exists('userId',$handle) &&
    array_key_exists('countryCode',$handle)
)


if(
    ctype_digit($listType) &&
    ctype_digit($listParent) && 
    (ctype_alnum($listUserName) && (strlen($listUserName) >=5 && strlen($listUserName) <=24)) &&    ctype_digit($listUserId) && 
      (ctype_alpha($listCountryCode) &&
    array_key_exists($listCountryCode, $countries))
 )

此外,在PHP中可以这样做吗?

bool fTest1 = A == B ;
bool fTest2 = C ;
bool fTest3 = f(1,2,3) ;
bool fSuccess = ( fTest1 | ftest2 ) & fTest3 ;
if ( fSuccess )
...

2 个答案:

答案 0 :(得分:3)

您可以使用array_intersect,然后执行count以避免所有if条款。

$arr1 = array("a" => "type", "parent", "username", "userId", "countryCode")
$intersect = array_intersect($handle, $arr1)
if(count($intersect) == count($arr1)){
   //Your logic goes here. 
}

此外,您所有上述“可行”的示例对我来说都是有效的。

答案 1 :(得分:2)

第一个必须在一个循环中完成,可能含有一些array_intersect族函数
第二个必须分成单独的语句,每个语句都有不同的错误信息
最后一个是可行的:

$fTest1 = $A == $B;

等等