[PHP] Operators
There are a few different types of operators in PHP and I will cover the most commonly used ones.
Arithmetic Operators
These are list basic maths. The 4 most common are:
Addition
Sum of $a and $b.
<?php $a = 4; $b = 3; echo $a + $b; ?>
Outputs:
7Subtraction
Difference of $a and $b.
<?php $a = 4; $b = 3; echo $a - $b; ?>
Outputs:
1Multiplication
Product of $a and $b.
<?php $a = 4; $b = 3; echo $a * $b; ?>
Outputs:
12Division
Quotient of $a and $b.
<?php $a = 4; $b = 3; echo $a / $b; ?>
Outputs:
1.33333333333Assignment
An assignment operator assigns a value to a variable name.
<?php $a = ($b = 10) + 5; ?>
With this $a equals 15 and $b is set to 10.
<?php $a = 10; $a += 5; $b = "hello "; $b .= "world!"; ?>
$a is initially set to 10, then is changed to 15. $b is initially set to ‘hello ‘ then ‘hello world!’ by using the period before the equals (.=).
Comparison
Comparison operators compare 2 values. These are often used in if statements, for example: if $a equals $b then do this.
$a == $b
Returns TRUE if $a is equal to $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a == $b); // 3 == 3 is true var_dump($b == $c); // 3 == 2 is false var_dump(0 == "s"); // 0 == 0 is true var_dump("1" == "01"); // 1 == 1 is true var_dump("1" == "1e0"); // 1 == 1 is true ?>
$a === $b
Returns TRUE if $a is identical to $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a === $b); // 3 === 3 is true var_dump($b === $c); // 3 === 2 is false var_dump(0 === "s"); // 0 === 0 is false var_dump("1" === "01"); // 1 === 1 is false var_dump("1" === "1e0"); // 1 === 1 is false ?>
$a != $b, $a <> $b
Returns TRUE if $a is not equal to $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a != $b); // 3 != 3 is false var_dump($b <> $c); // 3 <> 2 is true var_dump(0 != "s"); // 0 != 0 is false var_dump("1" != "01"); // 1 !=1 is false var_dump("1" <> "1e0"); // 1 <> 1 is false ?>
$a !== $b
Returns TRUE if $a is not identical to $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a !== $b); // 3 !== 3 is false var_dump($b !== $c); // 3 !== 2 is true var_dump(0 !== "s"); // 0 !== 0 is true var_dump("1" !== "01"); // 1 !== 1 is true var_dump("1" !== "1e0"); // 1 !== 1 is true ?>
$a < $b
Returns TRUE if $a is less than $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a < $b); // 3 < 3 is false var_dump($b < $c); // 3 < 2 is false var_dump(0 < "s"); // 0 < 0 is false var_dump("1" < "01"); // 1 < 1 is false var_dump("1" < "1e0"); // 1 < 1 is false ?>
$a > $b
Returns TRUE if $a is greater than $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a > $b); // 3 > 3 is true var_dump($b > $c); // 3 > 2 is true var_dump(0 > "s"); // 0 > 0 is false var_dump("1" > "01"); // 1 > 1 is false var_dump("1" > "1e0"); // 1 > 1 is false ?>
$a <= $b
Returns TRUE if $a is less than or equal to $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a <= $b); // 3 <= 3 is true var_dump($b <= $c); // 3 <= 2 is false var_dump(0 <= "s"); // 0 <= 0 is true var_dump("1" <= "01"); // 1 <= 1 is true var_dump("1" <= "1e0"); // 1 <= 1 is true ?>
$a >= $b
Returns TRUE if $a is greater than or equal to $b.
<?php $a = 3; $b = 3; $c = 2; var_dump($a >= $b); // 3 >= 3 is true var_dump($b >= $c); // 3 >= 2 is true var_dump(0 >= "s"); // 0 >= 0 is true var_dump("1" >= "01"); // 1 >= 1 is true var_dump("1" >= "1e0"); // 1 >= 1 is true ?>
Incrementing/Decrementing
Incrementing/Decrementing operators come in 2 forms, pre- and post-increment and decrement.
<?php echo "Postincrement\n"; $a = 5; echo "Should be 5: " . $a++ . "\n"; echo "Should be 6: " . $a . "\n"; echo "Preincrement\n"; $a = 5; echo "Should be 6: " . ++$a . "\n"; echo "Should be 6: " . $a . "\n"; echo "Postdecrement\n"; $a = 5; echo "Should be 5: " . $a-- . "\n"; echo "Should be 4: " . $a . "\n"; echo "Predecrement\n"; $a = 5; echo "Should be 4: " . --$a . "\n"; echo "Should be 4: " . $a . "\n"; ?>
Outputs:
Postincrement Should be 5: 5 Should be 6: 6 Preincrement Should be 6: 6 Should be 6: 6 Postdecrement Should be 5: 5 Should be 4: 4 Predecrement Should be 4: 4 Should be 4: 4
Logical
Logical operators return TRUE when variables match given the operator.
$a and $b, $a && $b
<?php $a = 3; $b = 3; $c = 0; var_dump($a and $b); // Returns true var_dump($a and $c); // Returns false var_dump($b && $c); // Returns false ?>
$a or $b, $a || $b
<?php $a = 3; $b = 3; $c = 0; var_dump($a or $b); // Returns true var_dump($a or $c); // Returns true var_dump($b || $c); // Returns true ?>
$a xor $b
<?php $a = 3; $b = 3; $c = 0; var_dump($a xor $b); // Returns false var_dump($a xor $c); // Returns true var_dump($b xor $c); // Returns true ?>
!$a
<?php $a = 3; $b = 3; $c = 0; var_dump(!$a); // Returns false var_dump(!$b); // Returns false var_dump(!$c); // Returns true ?>
String
String operators are the same as some of the assignment operators.
<?php $a = "Hello "; $b = $a . "World!"; // now $b contains "Hello World!" $a = "Hello "; $a .= "World!"; // now $a contains "Hello World!" ?>
The first use the concatenation operator (period) to concatenate both strings together. The second uses the concatenation assignment operator which appends the 2nd argument to the first.
For more information about operators in PHP, visit the PHP.net website which lists more operators and their uses.
