Conditional Expressions
The most common conditional comparison is to test the equality of two expressions with the Boolean result of true
or false
. Equality is tested with the doubleequal operator, ==
. Consider an example:
$var = 1; if ($var == 1) echo "Equals one!";
If $var
is equal to 1, the example evaluates as true
and prints the message. If the example evaluates as false
, nothing is printed.
Inequality can be tested with the !=
inequality operator:
$var = 0; if ($var != 1) echo "Does not equal one!";
This evaluates as true
and prints the message if $var
isn't equal to 1. The operator !=
is usually referred to as the not equals operator, because the exclamation mark character negates an equality expression.

Expressions can be combined with parentheses and with the Boolean operators &&
(and) and 
(or). For example, the following expression returns true
and prints the message if $var
is equal to either 3 or 7:
if ($var == 3)  ($var == 7) echo "Equals 3 or 7";
The following expression returns true
and prints the message if $var
equals 2 and $var2
equals 6:
if ($var == 2) && ($var2 == 6) echo "The variables are equal to 2 and 6";
Interestingly, if the first part of the expression ($var
==
2)
evaluates as false
, PHP doesn't evaluate the second part of the expression ($var2
==
6),
because the overall expression can never be true
; both conditions must be true
for an &&
(and) operation to be true
. This shortcircuit evaluation property has implications for design; to speed code, write the expression most likely to evaluate as false
as the leftmost expression, and ensure that computationally expensive operations are as rightmost as possible.

More complex expressions can be formed through combinations of the Boolean operators and the liberal use of parentheses. For example, the following expression evaluates as true
and prints the message if one of the following is true
: $var
equals 6 and $var2
equals 7, or $var
equals 4 and $var2
equals 1.
if ((($var == 6) && ($var2 == 7))  (($var == 4) && ($var2 == 1))) echo "Expression is true";
As in assignment expressions, parentheses ensure that evaluation occurs in the required order.
Equality and inequality are the two basic comparisons, but numbers are also compared to determine which is greater or lesser. Consider the following examples:
// Returns true if $var is less than 5 if ($var < 5) echo "Less than 5"; // Returns true if $var is less than or equal to 5 if ($var <= 5) echo "Less than or equal to 5"; // Returns true if $var is greater than 5 if ($var > 5) echo "Larger than 5"; // Returns true if $var is greater than or equal to 5 if ($var >= 5) echo "Equal to or larger than 5";
There is a new operator in PHP4, the isidentical operator ===
. This isn't found in other languages and returns true
only if the expression evaluates as equal and the arguments are of the same type. Consider an example:
// Returns true, since both are integers and equal if (5 === 5) echo "Same types and value"; // Returns false, since there are mixed types // (5.0 is a float, and 5 is an integer) if (5.0 === 5) echo "This never prints!"; // The normal equality check would return true if (5.0 == 5) echo "This always prints";
The conditional expressions described here can compare strings but usually not with the expected results. If strings need to be compareda common requirementuse the PHP string library function strcmp( )
.
Any of the Boolean expressions we have discussed can be negated with an exclamation mark !
, the unary not operator. The following two expressions are equivalent:
if (!($var != 1)) echo "variable is one"; if ($var == 1) echo "variable is one";
So are the following:
if ($var < 10) echo "less than 10"; if (!($var >= 10)) echo "less than 10";
Probably the most common use of the unary not operator is to check if a function call fails, and we often use this with the database functions in later chapters.