2011-01-05 18 views
45

booleanの値をPHPで切り替える/反転する機能はありますか?ブール値の切り替え/反転

同様...のショートカット:

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

ちょうど1つの質問... **なぜ**? '!'の何が問題なの? (私は車輪を再発明して-0.5に誘惑され、非常に貧弱なために-0.5に誘惑される) – delnan

+11

笑いをありがとう! – Max

+0

Eleganceは、名前が3つある場合は、名の後で姓の前にある名前です。 – Ben

0

ワンタッチピック用の0と1を返します。検出器;

3

何絶対値関数abs()の使用について、$ valが "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;

関連する問題