Hướng dẫn dùng language priority trong PHP
Anonymous ¶ 18 years ago of course this should be clear, but i think it has to be mentioned espacially: AND is not the same like && for example: && $b || $c; ?> the second 'cause || has got a higher priority than and, but less than && of course, using always [ && and || ] or [ AND and OR ] would be okay, but than you should at least respect the following: = $b && $c; ?> maybe usefull for some tricky coding and helpfull to prevent bugs :D greetz, Warhog anisgazig at gmail dot com ¶ 1 year ago Operator are used to perform operation. Operator are mainly divided by three groups. Operator are mainly divided by three groups that are totally seventeen types. 2.Assignment Operator 3.Array Operator 4.Bitwise Operator 5.Comparison Operator 6.Execution Operator 7.Error Control Operator 8.Incrementing/Decrementing Operator 9.Logical Operator 10.string Operator 11.Type Operator 12.Ternary or Conditional operator 13.Null Coalescing Operator 14.Clone new
Operator 15.yield from Operator yield from = yield from 16.yield Operator 17.print Operator yasuo_ohgaki at hotmail dot com ¶ 21 years ago Other Language books' operator precedence section usually include "(" and ")" - with exception of a Perl book that I have. (In PHP "{" and "}" should also be considered also). However, PHP Manual is not listed "(" and ")" in precedence list. It looks like "(" and ")" has higher precedence as it should be. Note: If you write following code, you would need "()" to get expected value. $bar = true; phpnet dot 20 dot dpnsubs at xoxy dot net ¶ 14 years ago Note that in php the ternary operator ?: has a left associativity unlike in C and C++ where it has right associativity. You cannot write code like this (as you may have accustomed to in C/C++): $a = 2; $a = 2; echo ( $a == 1 ? 'one' :($a == 2 ? 'two' : ($a == 3 ? 'three' : ($a == 4 ? 'four' : 'other') ) ) ); echo "\n"; //prints 'two' ?> ivijan dot stefan at gmail dot com ¶ 3 years ago If you use "AND" and "OR", you'll eventually get tripped up by something like this: $this_one = true; If you said "false" ...it's wrong! "$truthiness" above has the value "true". Why? "=" has a higher precedence than "and". The addition of parentheses to show the implicit order makes this clearer: ($truthiness = $this_one) and $that; This also works to get the correct value, as parentheses have higher precedence than "=": $truthiness = ($this_one and $that); anisgazig at gmail dot com ¶ 1 year ago A variable is a container that contain different types of data and the operator operates a variable correctly. me at robrosenbaum dot com ¶ 15 years ago The scope resolution operator ::, which is missing from the list above, has higher precedence than [], and lower precedence than 'new'. This means that self::$array[$var] works as expected. rick at nomorespam dot fourfront dot ltd dot uk ¶ 17 years ago A quick note to any C developers out there, assignment expressions are not interpreted as you may expect - take the following code ;- $a=array(1,2,3); Under a C compiler the result is;- It would appear that in php the increment in the left side of the assignment is processed prior to processing the right side of the assignment, whereas in C, neither increment occurs until after the assignment. |