2011-01-05 5 views
45

PHP에서 boolean 값을 전환/반전하는 기능이 있습니까?부울 값 전환/반전

처럼 ... 바로 가기에 대한 :

if($boolean === true){ 
    $boolean = false; 
}else{ 
    $boolean = true; 
} 
+3

http://uk.php.net/manual/en/language.operators.logical.php – Piskvor

답변

103

예 :

$boolean = !$boolean; 

는 부울 값이 아니라면, 당신은 삼항 건설 사용할 수 있습니다

$int = ($some_condition ? 1 : 2); // if $some_condition is true, set 1 
            // otherwise set 2 
+1

'$ bool =! $ bool'은 * true *에서 * false *로 바뀌지 만 * false * to * true *? – jolt

+2

@ 확실합니다. 사용해보기 –

+0

이 코드는 우수합니다. 그것은 아주 간단하고, 나는 그것을 결코 생각하지 않을 것입니다! – 131

-9

bool은 TRUE 또는 FALSE 중 하나 일 수 있습니다.

사용이

사용 : (부울) 빨간색 = varbool을 (false)를 $;
echo $ red; ! 검출기 = $ 피커 = $

$ :

진정한 것이 부울의 거짓

function varbool($val){ 

    $val +=(-1); 
    $val *= (-1); 
    return $val; 
} 

... 감사

+4

한 가지 질문 만 ... ** ** **? '! '의 잘못된 점은 무엇입니까? (휠을 재발 명할 때 -0.5로, 너무 가난하게했을 때 -0.5로 유혹 받는다.) – delnan

+11

웃음을 가져 주셔서 감사합니다! – Max

+0

우아함은 이름이 세 개인 경우 이름과 성 뒤에 오는 이름입니다. – Ben

0

원터치 선택을 위해 0과 1을 반환합니다 탐지기;

3

절대 값 기능 abs() 사용에 대한 $ 발가 될 수 있습니다 "1"또는 "0"당신이 그것을 반전 할 것 :

$val = abs($val-=1); 

논리 :

항상 뺀 "1" 번호에서 "기호"를 제거하십시오. 당신이 가장 짧은 코드를 원하는 경우

1 - 1 = 0 
abs(0) = 0 

0 - 1 = -1 
abs(-1) = 1 
2

는 XOR은 1 부울 :

$boolean ^= 1; 

엄밀히 이것은 INT되지 부울을 반환합니다. $boolean = !$boolean과 같은 방식으로 작동하지 않으며 약간 효율적이지 않지만 대부분의 경우 작업을 수행해야합니다.

+0

tks @Gannet이 나를 위해 트릭을했습니다! –

1

!을 사용하면 다음과 같이 결과가 반전됩니다. $ boolean =! (bool) $ result;