php operator precedence

伊谢尔伦
Release: 2016-11-24 13:39:30
Original
1232 people have browsed it

Operator precedence specifies how "tightly" two expressions are bound. For example, the expression 1 + 5 * 3 evaluates to 16 instead of 18 because the multiplication sign ("*") has higher precedence than the plus sign ("+"). Parentheses can be used to force a priority change if necessary. For example: (1 + 5) * 3 has the value 18.

If operators have the same precedence, their associative direction determines whether evaluation should be from right to left or from left to right - see the example below.

The following table lists the operators in order of precedence from high to low. Operators in the same line have the same precedence, and the direction in which they are combined determines the order of evaluation.

Operator precedence

Combining direction                                                                                                                        left [ array() right ++ -- ~ (int) (float ) (string) (array) (object) (bool) @ Type and increment/decrement

None instanceof Type

right ! Logical operator

left * / % Arithmetic operator

left + - . arithmetic operators and String operators

left > Bit operators

None == != === !== Comparison operators

left & & Bitwise operators and references

left ^ Bit operator

left | Bit bit operator

left && Logical operator

left || Logical operator

left ? : Ternary operator

right = += -= *= /= .= % = &= |= ^= >= => Assignment operator

left and Logical operator

left xor Logical operator

left or Logical operator

left , Many places When using

for operators with the same precedence, the left associative direction means that the evaluation will be from left to right, and the right associative direction means the opposite. It is possible that an operator with the same precedence without associative direction cannot be combined with itself. For example, in PHP 1 1 is an illegal statement, but 1

Example #1 In conjunction with direction

<?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
// mixing ++ and + produces undefined behavior
$a = 1;
echo ++$a + $a++; // may print 4 or 5
?>
Copy after login

Using parentheses often enhances the readability of your code, even when they are not strictly needed.

Note:

Although = has lower precedence than most other operators, PHP still allows expressions like the following: if (!$a = foo()), in this case the return value of foo() is assigned to $a.

Example:

Run the following command on the command line, and the printed result is false:

php operator precedence

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!