나는 개발자가 사용하기로 결정 코드베이스가 AND
와 OR
대신 &&
과 ||
.
나는 연산자의 우선 순위에 차이가 있다는 것을 알고 있지만 ( &&
앞에 가야 함 and
) 주어진 프레임 워크 ( PrestaShop 이 정확함)를 사용하면 분명히 이유가 아닙니다.
어떤 버전을 사용하고 있습니까? and
보다 읽기 쉬운 가요 &&
? 아니면 차이가 없습니까?
답변
AND
and 를 사용 OR
하면 결국 다음과 같은 문제가 발생합니다.
$this_one = true;
$that = false;
$truthiness = $this_one and $that;
무엇이 $truthiness
일치 하는지 추측하고 싶 습니까?
당신이 말했다면 false
…
$truthiness
위의 값이 true
있습니다. 왜? =
가 더 높은 우선 순위 이상을 and
. 묵시적 순서를 보여주기 위해 괄호를 추가하면 다음이 더 명확 해집니다.
($truthiness = $this_one) and $that
첫 번째 코드 예제 &&
대신 대신 사용하면 and
예상대로 작동하고입니다 false
.
아래 주석에서 논의했듯이 괄호가 다음보다 우선 순위가 높기 때문에 올바른 값을 얻습니다 =
.
$truthiness = ($this_one and $that)
답변
사용 방법에 따라 필요할 수도 있고 편리 할 수도 있습니다.
http://php.net/manual/en/language.operators.logical.php
// "||" has a greater precedence than "or"
// The result of the expression (false || true) is assigned to $e
// Acts like: ($e = (false || true))
$e = false || true;
// The constant false is assigned to $f and then true is ignored
// Acts like: (($f = false) or true)
$f = false or true;
그러나 대부분의 경우 @Sarfraz와 같은 CodeIgniter 프레임 워크에서 본 모든 발생과 같은 개발자의 취향이 더 많은 것처럼 보입니다.
답변
안전을 위해, 나는 항상 비교를 괄호로 묶고 비워 둡니다. 그렇게하면 연산자 우선 순위에 의존 할 필요가 없습니다.
if(
((i==0) && (b==2))
||
((c==3) && !(f==5))
)
답변
우선 순위는 && 와 and (&&가 and 보다 우선 순위가 높음)에 차이가 있으며, 삼항 연산자와 결합하면 혼동이 발생합니다. 예를 들어
$predA && $predB ? "foo" : "bar"
반면 문자열 을 반환합니다
$predA and $predB ? "foo" : "bar"
부울 을 반환합니다 .
답변
조건 할당에 사용할 수있는 and
것보다 우선 순위가 낮 으므로=
if ($var = true && false) // Compare true with false and assign to $var
if ($var = true and false) // Assign true to $var and compare $var to false
답변
“and”- “&&”- “&”의 차이점을 설명하겠습니다.
“&&”및 “and”는 모두 논리 AND 연산 이며 동일한 작업 을 수행하지만 연산자 우선 순위는 다릅니다.
연산자의 우선 순위 (우선 순위)는 두 표현식을 “단단하게”묶는 방법을 지정합니다. 예를 들어, 식 1 + 5 * 3에서 곱셈 ( “*”) 연산자는 더하기 ( “+”) 연산자보다 우선 순위가 높기 때문에 답은 18이 아니라 16입니다.
단일 작업으로 함께 혼합하면
항상 && 사용을 권장 하는 경우에 예기치 않은 결과가 발생할 수 있지만, 이것이 귀하의 선택입니다.
반면 “&”는 비트 단위 AND 연산 입니다. 정수 값 내에서 특정 비트의 평가 및 조작에 사용됩니다.
예를 들어 (14 & 7) 결과는 6입니다.
7 = 0111
14 = 1110
------------
= 0110 == 6
답변
어떤 버전을 사용하고 있습니까?
특정 코드베이스에 대한 코딩 표준이 코드를 작성하는 데 사용할 연산자를 지정하는 경우 반드시 사용해야합니다. 그렇지 않은 경우 코드에서 사용해야 할 항목을 지정 하고 (종종 쉽게 해결할 수없는 경우) 사용하겠습니다. 그렇지 않으면 아마도 &&
.
‘&&’보다 ‘and’가 더 읽기 쉬운가요?
그것은 더 읽기가 당신에게 . 답은 예, 아니오입니다 . 연산자 주변의 코드와 실제로 읽는 사람을 포함한 많은 요소에 따라 다릅니다!
|| ~ 차이가 있습니까?