運算子
運算子操作或作用於一個(一元運算子,如 !$a
和++$a
),兩個(二元運算子,如 $a + $b
或 $a >> $b
)或三個(唯一的三元運算子是 $a ? $b : $c
)表示式。
運算子優先順序會影響運算子的分組方式(就像有括號一樣)。以下是按優先順序排列的運算子列表(第二列中的運算子)。如果多個運算子在一行中,則分組由程式碼順序確定,其中第一列指示關聯性(請參閱示例)。
協會 | 操作者 |
---|---|
剩下 | -> :: |
沒有 | clone new |
剩下 | [ |
對 | ** |
對 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ |
沒有 | instanceof |
對 | ! |
剩下 | * / % |
剩下 | + - . |
剩下 | << >> |
沒有 | < <= > >= |
沒有 | == != === !== <> <=> |
剩下 | & |
剩下 | ^ |
剩下 | | |
剩下 | && |
剩下 | || |
對 | ?? |
剩下 | ? : |
對 | = += -= *= **= /= .= %= &= ` |
剩下 | and |
剩下 | xor |
剩下 | or |
完整資訊在 Stack Overflow 。
請注意,始終首先評估函式和語言結構(例如 print
),但將根據上述優先順序/關聯性規則使用任何返回值。如果省略語言構造之後的括號,則需要特別小心。例如 echo 2 . print 3 + 4;
echo 的 721
:print
部分評估 3 + 4
,列印結果 7
並返回 1
。之後,2
被迴應,與 print
(1
)的返回值連線在一起。