PHP運算子優先順序

來源:互聯網
上載者:User

標籤:gif   需要   附加   算術運算子   運算   and   div   logs   可讀性   

在我們前面講PHP邏輯運算子的時候,提到了PHP運算子的優先順序,所謂的運算子優先順序,指的是在運算式中哪一個運算子先計算,哪一個後計算,就好像,運算式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優先順序比加號(“+”)高。如果有需要的話,可以用括弧來強制改變優先順序。例如:(1 + 5) * 3 的值為 18。PHP的運算子在運算中遵循的規則是:優先順序高的操作先執行,優先順序低的操作後執行,如果同一優先順序,則按照從左至右的順序進行,例如,"-"是左聯的,那麼 1 - 2 - 3 就等同於 (1 -2) - 3 並且結果是 -4. 另外一方面,"="是右聯的,所以 $a = $b = $c 等同於 $a = ($b = $c)。1486188938564607.gif括弧內的運算子最先執行,括弧的使用,哪怕在不是必要的場合下,通過括弧的配對來明確標明運算順序,而非靠運算子優先順序和結合性來決定,可以提高代碼的可讀性。表按照優先順序從高到低列出了運算子。同一行中的運算子具有相同優先順序,此時它們的結合方向決定求值順序。結合方向運算子附加資訊無clone newclone和new<左[array()右**算術運算子右++ -- ~ (int) (float) (string) (array) (object) (bool) @類型和遞增/遞減無instanceof類型右!邏輯運算子左* / %算術運算子左+ - .算術運算子和字串運算子左<< >>位元運算符無< <= > >=比較子無== != === !== <> <=>比較子左&位元運算符和引用<左^位元運算符左|位元運算符左&&邏輯運算子左||邏輯運算子左??比較子左? :三元運算子右= += -= *= **= /= .= %= &= |= ^= <<= >>=賦值運算子左and邏輯運算子左xor邏輯運算子左or邏輯運算子這麼多的優先順序別,如果想都記得很清楚,是不太現實的,也沒有必要,如果寫的運算式很複雜,而且包含了較多的運行符,不放多使用括弧,想下面這樣:<?php$a and (($b !=$c) or (5*(50-$d)));?>這樣就能減少出現邏輯錯誤的可能有時使用括弧可以增強代碼的可讀性。例如,下面這樣:<?php$a = 3 * 3 % 5; // (3 * 3) % 5 = 4 //三元啟動並執行結合$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2 $a = 1;$b = 2;$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5  ?>以上就是php運算子優先順序順序詳解的詳細內容,更多請關注php中文網其它相關文章!

 

PHP運算子優先順序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.