2011-07-06 1 views
12

나는 약간의 PHP 코드 소스를 읽고은 다음을 찾았습니다보다 $key가 숫자 인 경우사용 | = PHP에

$failed |= is_numeric($key); 

기타, |=은 무엇을 의미합니까?

+3

http://www.php.net/manual/en/language.operators.assignment. php # 40084 – mario

답변

14

$x |= $y;$x = $x | $y;

$x | $y 그것이 두 변수 사이의 논리적 인 "또는"의 결과를 반환 수단 비트 연산자와 동일하다.

질문의 맥락에서 $failed은 여러 동작에 대한 오류 상태를 단일 변수 (개별 동작을 나타내는 각 비트 위치)에 저장할 수 있습니다.

이가하는 일, 내가 비트 연산자의 PHP 매뉴얼 페이지를 읽어 보시기 바랍니다에 대한 자세한 내용을 알고해야하는 경우 : http://www.php.net/manual/en/language.operators.bitwise.php

+0

+1 지금까지 가장 정확하고 완전한 대답이었습니다. – Dereleased

+0

투표는 다른 답변과의 비교가 아닌 절대 값을위한 것입니다. 여전히 좋은 대답이기 때문에 +1. –

12

표기법 $a |= $b은 다른 x= 표기와 유사한 $a = $a | $b을 의미합니다. |은 비트 OR 연산입니다.

4

그것의 등가물이다 :

$failed = $failed | is_numeric($key); 

|하면 비트 or 연산자이다.

언제든지 x <something>= y이 표시되면 언제든지 x = x <something> y으로 다시 쓸 수 있습니다. 비트 단위의 OR

4

그래서 라인 $failed 어느 $failed또는is_numeric($key)true 전에 true가 있었는지 true 수단

$failed = $failed | is_numeric($key); 

동일하다.