php中一個"異類"語法: $a && $b = $c;,php異類
php中一個"異類"語法: $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;否則不執行此賦值語句,這樣結果不難理解