programing

연산자로서의 'AND' vs '&'

itsource 2022. 10. 5. 23:39
반응형

연산자로서의 'AND' vs '&'

가 사용하기로 .AND ★★★★★★★★★★★★★★★★★」OR&& ★★★★★★★★★★★★★★★★★」||.

우선순위에 가 있는 을 알고 &&and하지만, 주어진 프레임워크(정확히 말하면 Presta Shop)에서는, 그것은 분명히 이유가 되지 않습니다.

떤떤버 ?전 ?? ???? 이는?and &&니면차 차이 ?? ???

「 」를 사용하고 AND ★★★★★★★★★★★★★★★★★」OR결국 다음과 같은 상황에 놓이게 됩니다.

$this_one = true;
$that = false;

$truthiness = $this_one and $that;

요?$truthiness 같습니까?

라고 하면false 틀렸어! bzzt, 안 ..., 어어!

$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;

그러나 대부분의 경우 개발자의 취향에 가까운 것 같습니다. 제가 CodeIgniter 프레임워크에서 본 것처럼요.@Sarfraz처럼요.

★★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

안전을 위해서, 나는 항상 내 비교를 괄호 안에 넣고 띄운다.이렇게 하면 연산자 우선 순위에 의존할 필요가 없습니다.

if( 
    ((i==0) && (b==2)) 
    || 
    ((c==3) && !(f==5)) 
  )

3진 연산자와 조합하면 혼동을 일으키는 & & (&은 및보다 우선도가 높음) 간에 우선순위가 다릅니다.예를 들어.

$predA && $predB ? "foo" : "bar"

문자열이 반환됩니다.

$predA and $predB ? "foo" : "bar"

부울을 반환합니다.

'and' - '&' - '&' - '&'의 차이를 설명하겠습니다.

&"와 "and"는 모두 논리적 AND 연산이며 동일한 작업을 수행하지만 연산자의 우선순위는 다릅니다.

연산자의 우선순위(priority)는 두 식을 "엄밀하게" 바인딩하는 방법을 지정합니다.예를 들어 식 1 + 5 * 3에서는 곱셈("*") 연산자가 더하기("+") 연산자보다 우선 순위가 높기 때문에 답은 16이고 18이 아닙니다.

1회 조작으로 조합하면 예기치 않은 결과를 얻을있습니다.항상 &&를 사용하는 것을 추천합니다만, 선택하실 수 있습니다.


반면 &은 비트의 AND 연산입니다.정수값 내의 특정 비트의 평가 및 조작에 사용됩니다.

예를 들어 (14 & 7)을 실행하면 결과는 6이 됩니다.

7   = 0111
14  = 1110
------------
    = 0110 == 6

어떤 버전을 사용하고 있습니까?

제가 쓰고 있는 특정 코드베이스의 부호화 규격에 어떤 연산자를 사용해야 하는지 명시되어 있다면, 반드시 그것을 사용합니다.만약 그렇지 않다면, 어떤 것을 사용해야 하는지(자주 사용할 수 없고 쉽게 해결할 수 있음) 코드가 정해져 있다면, 저는 그것을 사용합니다.그렇지 않으면 아마 &&.

'and'가 '&'보다 읽기 쉽습니까?

그게 너한테 더 읽기 쉬울까?정답은 예, 아니오입니다. 조작자 주변의 코드와 실제로 판독하는 사람의 코드에 따라 달라집니다.

|| ~차이가 있나요?

예. 다음 논리 연산자를 참조하십시오.|| 비트 연산자:~.

하나의 는 '보다 낫다'입니다.if「」가 없는 =할당 조작.

if (true || true && false); // is the same as:
if (true || (true && false)); // TRUE

그리고.

if (true || true AND false); // is the same as:
if ((true || true) && false); // FALSE

AND에 「」는 「」입니다.||높은 우선 순위

은 다 , 다 다르다, 다 다르다, 다 다르다, 이런 이야기들이에요.true, false, false ★★★★★★★★★★★★★★★★★」true, true, false상세한 예에 대해서는, https://ideone.com/lsqovs 를 참조해 주세요.

취향의 문제라고 생각합니다만, (실수로) 섞으면 바람직하지 않은 행동을 할 수도 있습니다.

true && false || false; // returns false

true and false || false; // returns true

따라서 & 및 |를 사용하는 것이 우선 순위가 가장 높기 때문에 더 안전합니다.가독성에 관해서는, 이러한 연산자는 충분히 보편적이라고 말할 수 있습니다.

업데이트: 두 작업 모두 false를 반환한다는 코멘트에 대해... 위 코드는 아무것도 반환하지 않습니다.모호한 점 죄송합니다.명확히 하자면, 두 번째 경우의 동작은 조작의 결과가 어떻게 사용되는지에 따라 달라집니다.여기서 연산자의 우선순위가 어떻게 작용하는지 관찰해 주십시오.

var_dump(true and false || false); // bool(false)

$a = true and false || false; var_dump($a); // bool(true)

<고객명>$a === true이는 할당 연산자가 논리 연산자보다 우선하기 때문이며, 이는 다른 답변에서 이미 잘 설명되어 있습니다.

다음은 반대 예를 제시하겠습니다.

$a = true;
$b = true;
$c = $a & $b;
var_dump(true === $c);

출력:

bool(false)

를 일으킬 더 높다고 = »== 보다 덜 에 띌 이다.adn/ro★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ.FWIW, 선호도를 표현하는 대부분의 PHP 프레임워크는 및/또는 둘 다 지정합니다.나도 문제가 될만한 실제적이고 통제되지 않은 사건에 부딪힌 적이 없다.

언급URL : https://stackoverflow.com/questions/2803321/and-vs-as-operator

반응형