The two priorities are the same, and the comparison (comparision) and Assignment (Assignment) operations are slightly different. The comparison operator has a, <, >=, and so on, the assignment operator has =, + =, *=, and so on.
The comparison operator in JS has a higher precedence than the assignment operator. So foo = 1 < 2 result Foo = false;
In PHP, in turn, the assignment operator takes precedence over the comparison operator. So foo = 1 < 2 result foo = 1, the expression is false. To achieve the same result as above, enclose the parentheses
Foo = (1 < 2)
Attached: full operator precedence for PHP and JavaScript
Js
The following table is ordered from highest (+) to lowest (0) precedence.
Precedence |
Operator Type |
associativity |
Individual Operators |
19 |
Grouping |
N/A |
( … ) |
18 |
Member Access |
Left-to-right |
… . … |
Computed Member Access |
Left-to-right |
… [ … ] |
New (with argument list) |
N/A |
new … ( … ) |
17 |
Function Call |
Left-to-right |
… ( … ) |
New (without argument list) |
Right-to-left |
new … |
16 |
Postfix Increment |
N/A |
… ++ |
Postfix Decrement |
N/A |
… -- |
15 |
Logical not |
Right-to-left |
! … |
Bitwise not |
Right-to-left |
~ … |
Unary Plus |
Right-to-left |
+ … |
Unary negation |
Right-to-left |
- … |
Prefix Increment |
Right-to-left |
++ … |
Prefix Decrement |
Right-to-left |
-- … |
typeof |
Right-to-left |
typeof … |
void |
Right-to-left |
void … |
Delete |
Right-to-left |
delete … |
14 |
exponentiation |
Right-to-left |
… ** … |
Multiplication |
Left-to-right |
… * … |
Division |
Left-to-right |
… / … |
Remainder |
Left-to-right |
… % … |
13 |
Addition |
Left-to-right |
… + … |
Subtraction |
Left-to-right |
… - … |
12 |
Bitwise left Shift |
Left-to-right |
… << … |
Bitwise Right Shift |
Left-to-right |
… >> … |
Bitwise Unsigned Right Shift |
Left-to-right |
… >>> … |
11 |
Less Than |
Left-to-right |
… < … |
Less Than Or Equal |
Left-to-right |
… <= … |
Greater Than |
Left-to-right |
… > … |
Greater Than Or Equal |
Left-to-right |
… >= … |
Inch |
Left-to-right |
… in … |
instanceof |
Left-to-right |
… instanceof … |
10 |
Equality |
Left-to-right |
… == … |
Inequality |
Left-to-right |
… != … |
Strict Equality |
Left-to-right |
… === … |
Strict inequality |
Left-to-right |
… !== … |
9 |
Bitwise and |
Left-to-right |
… & … |
8 |
Bitwise XOR |
Left-to-right |
… ^ … |
7 |
Bitwise OR |
Left-to-right |
… | … |
6 |
Logical and |
Left-to-right |
… && … |
5 |
Logical OR |
Left-to-right |
… || … |
4 |
Conditional |
Right-to-left |
… ? … : … |
3 |
Assignment |
Right-to-left |
… = … |
… += … |
… -= … |
… **= … |
… *= … |
… /= … |
… %= … |
… <<= … |
… >>= … |
… >>>= … |
… &= … |
… ^= … |
… |= … |
2 |
Yield |
Right-to-left |
yield … |
1 |
Spread |
N/A |
... ... |
0 |
Php
Operator Precedence
associativity |
Operators |
Additional Information |
Non-associative |
Clone new |
Clone andnew |
Left |
[ |
Array () |
Right |
** |
Arithmetic |
Right |
+ +--~ (int) (float) (string) (array) (object) (BOOL) @ |
Types Andincrement/decrement |
Non-associative |
instanceof |
Types |
Right |
! |
Logical |
Left |
* / % |
Arithmetic |
Left |
+ - . |
Arithmetic andstring |
Left |
<< >> |
Bitwise |
Non-associative |
< <= > >= |
Comparison |
Non-associative |
= = = = = = =!== <> <=> |
Comparison |
Left |
& |
Bitwise andreferences |
Left |
^ |
Bitwise |
Left |
| |
Bitwise |
Left |
&& |
Logical |
Left |
|| |
Logical |
Right |
?? |
Comparison |
Left |
? : |
Ternary |
Right |
= + = = *= **=/=. =%= &= |= ^= <<= >>= |
Assignment |
Left |
and |
Logical |
Left |
Xor |
Logical |
Left |
Or |
Logical |
|
The above describes the PHP and JavaScript operator precedence differences, including aspects of the content, I hope that the PHP tutorial interested in a friend helpful.