search
HomeBackend DevelopmentPHP TutorialDetailed explanation of PHP operator priority order

When we talked about PHP logical operators earlier, we mentioned the priority of PHP operators. The so-called operator priority refers to which operator in the expression is calculated first and which one is calculated later. It seems that the result

of the expression 1 + 5 * 3 is 16 instead of 18 because the multiplication sign ("*") has a higher priority than the plus sign ("+"). If necessary, parentheses can be used to force a priority change. For example: (1 + 5) * 3 has the value 18.

The rules followed by PHP operators in operations are: operations with higher priority are executed first, and operations with lower priority are executed later. If they have the same priority, they are executed in order from left to right, for example , "-" is a left-joint, then 1 - 2 - 3 is equivalent to (1 -

2) - 3 and the result is -4. On the other hand, "=" is a right-joint, so $a = $b = $c is equivalent to $a = ($b = $c).

Detailed explanation of PHP operator priority orderThe operators in the brackets are executed first. The use of brackets, even if it is not necessary, clearly indicates the order of operations through the pairing of brackets, rather than relying on operator priority and associativity. To decide, it can improve the readability of the code.

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

/ %-.Bitwise OperatorNoneComparison operators                                  ;=>^|&&Logical operatorComparison operatorTernary operator             +=                                                   ‐ ##                     |=                                           ‐ or Logical operatorsWith so many priority levels, it is unrealistic to remember them all clearly. Yes, it’s not necessary. If the expression you write is very complex and contains a lot of running symbols, don’t use parentheses. Think of it like this:
<?php
$a and (($b !=$c) or (5*(50-$d)));
?>
Combining direction Operator Additional information
None clone new clone and new
left [ array ()
Right ** Arithmetic operator
Right ##++                 --           ~                 (int)                           ‐ #(string)           (array)               (object)                                                             ’ ’s ’ s         ’   ‐ ‐ P P S P C P C P C C P S C P S C S P S C S P S P S P S P S P S P S P S P S P S P S P S P D S N M /DecreasingNoneinstanceof Type
right ! Logical operator
left *                      
Arithmetic operator left+                          
Arithmetic operators and string operators ##left           >>
                                                                                                    >=
None==         !=           ===!==
Comparison operator left&bit operation Symbols and references left
bit operators left
bit operator left
Logical operator ##left ||
left ??
left ? :
Right =
-=*=           **=&=
^=#Assignment operatorleftandLogical operatorleftxorlogical operatorleft
This will reduce the possibility of logic errors Sometimes using parentheses can enhance the readability of the code. For example, the following:
<?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


?>

The above is the detailed content of Detailed explanation of PHP operator priority order. For more information, please follow other related articles on the PHP Chinese website!

Statement
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
PHP Dependency Injection Container: A Quick StartPHP Dependency Injection Container: A Quick StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Dependency Injection vs. Service Locator in PHPDependency Injection vs. Service Locator in PHPMay 13, 2025 am 12:10 AM

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHP performance optimization strategies.PHP performance optimization strategies.May 13, 2025 am 12:06 AM

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHP Email Validation: Ensuring Emails Are Sent CorrectlyPHP Email Validation: Ensuring Emails Are Sent CorrectlyMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

How to make PHP applications fasterHow to make PHP applications fasterMay 12, 2025 am 12:12 AM

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

PHP Performance Optimization Checklist: Improve Speed NowPHP Performance Optimization Checklist: Improve Speed NowMay 12, 2025 am 12:07 AM

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

PHP Dependency Injection: Improve Code TestabilityPHP Dependency Injection: Improve Code TestabilityMay 12, 2025 am 12:03 AM

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

PHP Performance Optimization: Database Query OptimizationPHP Performance Optimization: Database Query OptimizationMay 12, 2025 am 12:02 AM

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),