0

我需要将 PHP 内置函数括在括号中吗?

这些是最合适的方法吗?

(empty($UrlArray[1])), (is_numeric($UrlArray[1])), (strlen($UrlArray[1]) == 4)

或者,这些是最合适的方法吗?

empty($UrlArray[1]), is_numeric($UrlArray[1]), strlen($UrlArray[1]) == 4

这个可行,但我想知道我是否有太多括号。

( ( (empty($UrlArray[1])) OR ( (!empty($UrlArray[1])) AND (is_numeric($UrlArray[1])) AND (strlen($UrlArray[1]) == 4) ) ) AND (count($UrlArray) < 3) )

如果我省略了 PHP 内置函数的括号,代码片段仍然有效。

( ( empty($UrlArray[1]) OR ( !empty($UrlArray[1]) AND is_numeric($UrlArray[1]) AND strlen($UrlArray[1]) == 4 ) ) AND count($UrlArray) < 3 )

我总是将 PHP 内置函数括在括号中。但我只是想知道这是否是最好的方法。

谢谢。

4

1 回答 1

3

不,您不需要将函数括在括号中。事实上,如果我不得不维护这样的代码,那可能会让我发疯。

似乎它只会增加混乱,特别是当你已经有很多括号时。这将使他们更难匹配。

然而,在你的第一个例子中,你有这个:

(strlen($UrlArray[1]) == 4)

IMO,这个很好。我可能会将整个比较用括号括起来,但我不会这样做:

((strlen($UrlArray[1])) == 4)

为了便于阅读,我还可以对其进行格式化:

if (
    count($UrlArray) < 3
    && (
        empty($UrlArray[1])
        || (
            !empty($UrlArray[1])
            && is_numeric($UrlArray[1])
            && strlen($UrlArray[1]) == 4
        )
    )
) {
    // do something
}
于 2013-11-14T03:28:21.677 回答