$a = 1;
$b = 2;
$c = 3;
$a && $b = $c;echo "a:$a";
echo "b:$b";
echo "c:$c";
これは
a:1
b:3
c:3です
$a = 0;
$b = 2;
$c = 3;
$a && $b = $c ;echo "a:$a";
echo "b:$b";
echo "c:$c";
これは
a:0
b:2
c:3
分析:
1: && と代入演算子 "= の優先順位は && の方が優先されますが、赤字の書き方は、$a と $b が最初に AND 演算を行ってから =$c が行われるという意味ではありません。この理解は同等です。 1=$c に、 1=$c と書くのは間違いです
2: この代替記述方法を理解する正しい方法は次のとおりです:
if($a){$b = $c}、つまり、$a が true の場合、代入ステートメント $b = $c が実行されます。それ以外の場合、代入ステートメントは実行されないため、結果は返されません。わかりにくい