ホームページ >バックエンド開発 >PHPチュートリアル >PHP の最初の問題についての簡単な説明 - PHP ビット演算子「|」と論理演算子「||」で発生する問題_PHP チュートリアル

PHP の最初の問題についての簡単な説明 - PHP ビット演算子「|」と論理演算子「||」で発生する問題_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:50:10785ブラウズ

PHPでは、「|」はPHPビット演算子、「||」は論理演算子です
ビット演算子コード:
$a=0;
$b=0;
if($a=3 | $b=3){
$a++;
$b++;
}
echo $a.','.$b //出力 4,4
; ?>
コードを比較してください。論理演算子のコードは次のとおりです:
$a=0;
$b=0;
if($a=3 || $b=3){
$a++;
$b++;
}
echo $a.','.$b //出力 1,1
; ?>

上記2つの例のうち、最初の例「$a=3 | $b=3」では、「|」の優先順位が代入演算子よりも高いため、演算の順序は「$a=」と書くことができます。 ( 3 | $b=3)" の場合、最初に $b には値 3 が割り当てられ、$a には 2 進数 0100 | 0100 の値が割り当てられますが、これはまだ 0100 であるため、この時点では $a には値 0100 が割り当てられます。 10 進数で 3 です。代入が成功すると、true が返され、$a の内容がインクリメントされ、$b もインクリメントされます。したがって、$a=4、$b=4 となります。


2 番目の例では、「$a = (3 || $b = 3)」とも見られます。まず、3||$b=3 が true を返し、「||」が短絡を引き起こします。 ||" 3 より前はすでに true であり、"$b=3" はもう実行されないため、この時点では $b はまだ 0、$a はブール型の true、代入は成功し、true が返され、内容はif コード ブロックが実行され、$a++ が返されると true、$b++ は 1 となるため、$a=1、$b=1


zdrjlamp より抜粋

www.bkjia.com本当http://www.bkjia.com/PHPjc/478288.html技術記事 php では、| は php ビット演算子であり、ビット演算子のコードは次のとおりです。 a++; $b++; } echo $a.,.$b? // 出力 4,4 のロジックは次のとおりです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。