web-dev-qa-db-ja.com

ブール値の切り替え/反転

PHPでboolean値を切り替え/反転する関数はありますか?

のような...のショートカット:

if($boolean === true){
    $boolean = false;
}else{
    $boolean = true;
}
59
jolt

はい:

$boolean = !$boolean;

ブール値でない場合は、3項構造を使用できます。

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

最短のコードが必要な場合は、XOR

$boolean ^= 1;

厳密には、ブール値ではなくintを返します。 $boolean = !$booleanと同じようには機能しませんが(効率はやや劣ります)、ほとんどの目的で機能します。

5
Gannet

絶対値関数abs()の使用についてはどうでしょうか。

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

ロジック:

常に数値から「1」を減算し、「符号」を削除します。

1 - 1 = 0
abs(0) = 0

0 - 1 = -1
abs(-1) = 1
5

!を使用して結果を反転するだけで、次のようになります。$ boolean =!(bool)$ result;

1

ブールのワンタッチピック:

$ detector =!$ picker = $ detector;

0
lazycommit

あなたは1行でそれを行うことができます:

<?php
$val = 0 
$val = $val ==1?0:1;  
?>
0
abas nikzad