In PHP, conditional statements are a fundamental part of building effective websites that are customised with preferences or that require a login. In fact there are many uses for conditional statements in PHP.
In PHP a condition is typed as a boolean type. The simplest conditions are true
and false
, but more complex conditions also return these as results.
There are several operators that can be used:
Symbol | Name | Returns true when |
---|---|---|
< | Less than |
$a is less than $b .
|
> | Greater than |
$a is greater than $b .
|
<= | Less than or equal to |
$a is less than or equal to $b .
|
>= | Greater than or equal to |
$a is greater than or equal to $b .
|
== | Equal to |
$a is equal to $b .
|
!= | Not equal to |
$a is not equal to $b .
|
<> | Not equal |
$a is not equal to $b .
|
=== | Identical |
$a and $b are the same and are the same type.
|
!== | Not identical |
$a and $b are not the same or are not the same type.
|
These operators are easy to use:
<?php $x = 5; $y = 7; $z = 0; $z = $x < $y; echo("1:" . $z); $z = $x > $y; echo("2:" . $z); $z = $x <= $y; echo("3:" . $z); $z = $x >= $y; echo("4:" . $z); $z = $x == $y; echo("5:" . $z); $z = $x != $y; echo("6:" . $z); ?>
2:
3:1
4:
5:
6:1
Propositional logic, which programming languages such as PHP use, can also join multiple conditions through logical conjunction and logical disjunction. These are better known as AND and OR.
AND and OR are based on AND gates and OR gates in computer hardware.
AND
AND requires that two conditions are true to return true.
The following is a truth table for AND:
P | Q | P AND Q |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
In PHP the AND symbol is &&
. The following is an example using AND in a condition:
<?php $p = true; $q = false; $r = true; $result = $p && $q; echo("1:" . $result); $result = $p && $r; echo("2:" . $result); ?>
2:1
OR
OR requires that one of the two conditions is true to return true.
The following is the truth table for OR:
P | Q | P OR Q |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
In PHP the OR symbol is ||
. The following is an example using OR in a condition:
<?php $p = false; $q = false; $r = true; $result = $p || $q; echo("1:" . $result); $result = $p || $r; echo("2:" . $result); ?>
2:1
Negation
The final type of logical operator is the NOT operator. The truth table following shows how NOT performs.
P | NOT P |
---|---|
true | false |
false | true |
In PHP, NOT is represented with the !
operator. Putting a NOT operator in front of
a boolean value will invert it. The following is a condition that uses
the NOT operator to flip the value of a boolean value:
<?php $x = false; $y = true; echo("1:" . !$x); echo("2:" . !$y); ?>
2:
De Morgan's Law
A key law in logic is De Morgan's Law. This law shows:
- the negation of a conjunction is the disjunction of the negations;
- the negation of a disjunction is the conjunction of the negations;
Less formally:
-
!($A && $B)
==!$A || !$B
-
!($A || $B)
==!$A && !$B
The truth table for !($A && $B)
and !$A || !$B
is as follows:
$A | $B | $A && $B | !($A && $B) | !$A || !$B |
---|---|---|---|---|
true | true | true | false | false |
true | false | false | true | true |
false | true | false | true | true |
false | false | false | true | true |
Now in PHP:
<?php $A = true; $B = false; echo(!($A && $B)); echo(!$A || !$B); ?>
Now the truth table for !($A || $B)
and !$B
is as follows:
$A | $B | $A || $B | !($A || $B) | !$A && !$B |
---|---|---|---|---|
true | true | true | false | false |
true | false | true | false | false |
false | true | true | false | false |
false | false | false | true | true |
Now in PHP:
<?php $A = true; $B = false; echo(!($A || $B)); echo(!$A && !$B); ?>