Home  >  Article  >  Backend Development  >  Symbols of PHP comparison operators and logical operations

Symbols of PHP comparison operators and logical operations

伊谢尔伦
伊谢尔伦Original
2016-11-25 13:36:031130browse

An operator is a symbol that tells the compiler to perform a specific arithmetic or logical operation. It usually forms an expression together with the operands. We often see it participating in mathematical operations or logical operations. PHP also contains many operators. This article explains in detail the very important comparison operators.

Symbols of PHP comparison operators and logical operations

Comparison operator types

As their name implies, allow comparison of two values. The comparison operators are as follows:
1) $a > $b is greater than: if $a is strictly greater than $b, then TRUE is returned
2) $a 3) $a >= $b Greater than or equal to: If $a is greater than or equal to $b, return TRUE
4) $a 5) $a $b is not equal to: if $a is not equal to $b, return TRUE
6) $a != $b is not equal to: if $a is not equal to $b, return TRUE (same as above )
7) $a == $b is equal to: If $a is equal to $b, return TRUE
8) $a === $b is equal to: if $a is equal to $b, and their types are also the same, then Return TRUE
9) $a !== $b is not equal to: If $a is not equal to $b, or their types are different, then TRUE is returned

Among them, we need to focus on distinguishing between "equal to" and "all equal to", $a == $b only performs a comparison operation on the values ​​​​of the two variables, while equality requires comparing the values ​​​​and data types of the expressions on both sides of the operator at the same time. Only when the values ​​​​on both sides are equal, the operation result will be is true". Combined with the "inequality" operator, for example, $a = 2; var_dump($a!==2); this expression returns "false" because 2 is equal to 2. In addition, $a = 2; is an integer type and 2 in var_dump($a!==2); is also an integer type, but the operator is not exactly equal to "!==", so the result is false, because 2 is equal to 2 . On the other hand, if this is the case $a = 2; var_dump($a!=='2'); the result of the operation is "true", because 2 is not equal to '2', and the following '2' is a string of '2' ', that is, not all equals not only compare the variable values, but also compare the data types of the variables.

Comparing results of different types in PHP

If the PHP comparison operator compares an integer and a string, the string will be converted to an integer and then compared. If you compare two numeric strings, they are compared as integers, and this rule also applies to switch statements.
For example:
var_dump(0 == "a"); // Return TRUE, "a" is converted to 0
var_dump("1" == "01"); // Return TRUE, treated as an integer

string Or comparison between null and string: Convert NULL to "" to compare numbers or strings
Comparison between bool or null: Convert to bool, FALSE Object built-in classes can define their own comparisons, different classes cannot Comparison, if the same class compares attributes
Comparison between string, resource or number: Convert strings and resources into numbers, compare according to ordinary mathematics
Comparison between arrays: Arrays with fewer members are smaller, if the operand 1 is in The key does not exist in operand 2, so the arrays cannot be compared and need to be compared value by value (see the following code)
Comparing array with any other type: array is always larger
Comparing object with any other type: object is always larger

Array comparison code:

function standard_array_compare($op1, $op2) 
{ 
if (count($op1) < count($op2)) { //具有较少成员的数组较小
return -1; // $op1 < $op2 
} elseif (count($op1) > count($op2)) { 
return 1; // $op1 > $op2 
} 
foreach ($op1 as $key => $val) { 
if (!array_key_exists($key, $op2)) { 
return null; 
} else if ($val < $op2[$key]) { 
return -1; 
} elseif ($val > $op2[$key]) { 
return 1; 
} 
} 
return 0; // $op1 == $op2 
}

Ternary operator in comparison operator:

Expression (expr1) ? (expr2) : (expr3) When the value of expression expr1 is TRUE, the value is expr2, when The expression expr1 evaluates to FALSE when it evaluates to expr3.


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