0

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

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 )
...
4

2 回答 2

3

您可以使用array_intersect然后执行 acount来避免所有if子句。

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

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

于 2013-05-21T14:04:07.267 回答
2

第一个必须在循环中完成,可能使用一些 array_intersect 系列函数加糖
第二个必须分成单独的语句,每个语句都有不同的错误消息
最后一个非常可行:

$fTest1 = $A == $B;

等等

于 2013-05-21T14:05:02.770 回答