$a && $b = $c what???

$a && $b = $c;
$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先做與運算然後 =$c,這麼理解相當於 1=$c, 而 1=$c這樣的寫法是錯誤的
  2. 這種另類的寫法正確的理解方式爲:
    if($a){$b = $c},即如果$a爲真,則執行賦值語句$b = $c;否則不執行此賦值語句,這樣結果不難理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章