Expressions
Let’s start with the most fundamental part of any programming language: expressions.
An expression is a combination of values, variables, operators, and functions that results in a value. It’s familiar to anyone who has taken elementary-school algebra:
y = 3(abs(2x) + 4)
which in PHP would be:
$y = 3 * (abs(2*$x) + 4);
The value returned (y or $y
in this case) can be a number, a string, or
a Boolean value (named after George Boole, a
nineteenth-century English mathematician and philosopher). By now, you
should be familiar with the first two value types, but I’ll explain the
third.
A basic Boolean value can be either TRUE
or FALSE
. For example, the expression “20 > 9”
(20 is greater than 9) is TRUE
, and
the expression “5 == 6” (5 is equal to 6) is FALSE
. (Boolean operations can be combined
using operators such as AND
, OR
, and XOR
, which are covered later in this
chapter.)
Note that I am using uppercase letters for the names TRUE
and FALSE
. This is because they are predefined
constants in PHP. You can also use the lowercase versions, if you
prefer, as they are also predefined. In fact, the lowercase versions are
more stable, because PHP does not
allow you to redefine them; the uppercase ones may be redefined—something you should bear in
mind if you import third-party code.
Example 4-1 shows some
simple expressions: the two I just mentioned, plus a couple more. For
each line, it prints out a letter between a
and d
,
followed by a colon and the result of the expressions (the <br />
tag is there to create a line
break and thus separate the output into four lines in HTML).
<?php echo "a: [" . (20 > 9) . "]<br />"; echo "b: [" . (5 == 6) . "]<br />"; echo "c: [" . (1 == 0) . "]<br />"; echo "d: [" . (1 == 1) . "]<br />"; ?>
The output from this code is as follows:
a: [1] b: [] c: [] d: [1]
Notice that both expressions a:
and d:
evaluate to TRUE
, which has a value of 1. But b:
and c:
,
which evaluate to FALSE
, do not show
any value, because in PHP the constant FALSE
is defined as NULL
, or nothing. To verify this for yourself,
you could enter the code in Example 4-2.
<?php // test2.php echo "a: [" . TRUE . "]<br />"; echo "b: [" . FALSE . "]<br />"; ?>
which outputs the following:
a: [1] b: []
By the way, in some languages FALSE
may be defined as 0 or even −1, so it’s
worth checking on its definition in each language.
Literals and Variables
The simplest form of an expression is a literal, which simply means something that evaluates to itself, such as the number 73 or the string “Hello”. An expression could also simply be a variable, which evaluates to the value that has been assigned to it. They are both types of expressions, because they return a value.
Example 4-3 shows five different literals, all of which return values, albeit of different types.
<?php $myname = "Brian"; $myage = 37; echo "a: " . 73 . "<br />"; // Numeric literal echo "b: " . "Hello" . "<br />"; // String literal echo "c: " . FALSE . "<br />"; // Constant literal echo "d: " . $myname . "<br />"; // Variable string literal echo "e: " . $myage . "<br />"; // Variable numeric literal ?>
And, as you’d expect, you see a return value from all of these
with the exception of c:
, which
evaluates to FALSE
, returning
nothing in the following output:
a: 73 b: Hello c: d: Brian e: 37
In conjunction with operators, it’s possible to create more complex expressions that evaluate to useful results.
When you combine assignment or control-flow constructs with
expressions, the result is a statement. Example 4-4 shows one of each. The
first assigns the result of the expression 366 - $day_number
to the variable $days_to_new_year
, and the second outputs a
friendly message only if the expression $days_to_new_year < 30
evaluates to
TRUE
.
Get Learning PHP, MySQL, and JavaScript now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.