Parsing PHP comparison operators and logical operators

怪我咯
Release: 2023-03-07 10:44:01
Original
1383 people have browsed it

The 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.


Parsing PHP comparison operators and logical operators


##Comparison operator types

Like As their name implies, they allow two values ​​to be compared. The comparison operators are as follows:

1)
$a > $b Greater than: If $a is strictly greater than $b, TRUE is returned2)
$a Less than: If $a is strictly less than $b, return TRUE3)
$a >= $b Greater than or equal to: If $a is greater than or equal to $b, return TRUE4)
$a Less than or equal to: If $a is less than or equal to $b, Then return TRUE5)
$a $b is not equal to: If $a is not equal to $b, then return TRUE6)
$a != $b Not equal to: If $a is not equal to $b, return TRUE (same as above) 7)
$a == $b Equals: If $a equals $b, then returns TRUE8)
$a === $b All equals: If $a equals $b, and they The types are also the same, then TRUE is returned9)
$a !== $b is not equal to: If $a is not equal to $b, or their types are different, Return TRUE
Among them, we need to focus on distinguishing between "equal to" and "equal to". $a == $b only compares the values ​​​​of two variables, and equal to both sides of the operator. The expression compares values ​​and data types at the same time. Only when the values ​​on both sides are equal, the operation result 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, Treat as an integer

Comparison between string or null and string: Convert NULL 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 be compared, and properties of the same class are compared
Comparison between strings, resources or numbers: Convert strings and resources into numbers, and compare them according to ordinary mathematics
array Comparison between: Arrays with fewer members are smaller. If the key in operand 1 does not exist in operand 2, the arrays cannot be compared and need to be compared value by value (see the following code)
array and any other type Comparison: array is always larger
Compare 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 
}
Copy after login


Ternary operator in the comparison operator:

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

The above is the detailed content of Parsing PHP comparison operators and logical operators. For more information, please follow other related articles on the PHP Chinese website!

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!