All the PHP code is surrounded by two delimiters, <?php
and ?>
.
<?php # PHP code ?>
PHP code is put between two delimiters.
PHP console output
Output from our PHP scripts is sent to the console. Note that we say console because here we use the PHP_CLI
command line interpreter. If we test these examples on the web, the output will be sent to the browser.
printing.php
<?php $a = 23; print $a; ?>
This PHP script assigns a value to a variable. It prints it to the console.
$a = 23;
We assign a value 23 to the $a
variable. Each variable starts with a dollar character. This PHP code line is a statement. Each statement ends with a semicolon. In PHP, semicolons are not optional like in JavaScript or Ruby. They are obligatory.
print $a;
We print the $a variable to the console. The print
keyword does not add a new line to the output. If we want a new line, we must put it manually. The print
keyword takes only one argument.
echoing.php
<?php $a = 23; $b = 24; echo $a, "\n", $b, "\n"; ?>
In this script, we use the echo
keyword. It is similar to the print
keyword. Unlike the print
keyword, it can take multiple arguments.
$a = 23; $b = 24;
We define two variables.
echo $a, "\n", $b, "\n";
We print the variables to the console. We also include the new line characters. Arguments can be separated by commas.
$ php echoing.php 23 24
This is the output of the script.
PHP command line arguments
PHP scripts can receive command line arguments. They follow the name of the program. The $argv
is an array holding all arguments of a PHP script. The $argc
holds the number of arguments passed, including the name of the PHP script.
arguments.php
<?php echo "There are $argc arguments\n"; for ($i=0; $i < $argc; $i++) { echo $argv[$i] . "\n"; } ?>
This script works with command line arguments.
echo "There are $argc arguments\n";
We print the number of arguments passed to the script.
for ($i=0; $i < $argc; $i++) { echo $argv[$i] . "\n"; }
In the for loop, we go through and print all arguments. Loops are covered later in the tutorial.
$ php arguments.php 1 2 3 There are 4 arguments arguments.php 1 2 3
We pass three arguments to the script. The name of the script is also an argument to the PHP script.
PHP types
PHP is a weakly typed language. It works with types, but the programmer does not specify them when declaring variables. A data type is a one of various types of data, as double, integer, or boolean. Values of a certain data type are from a specific range of values stating the possible values for that type, the operations that can be done on that type, and the way the values of that type are stored. PHP works implicitly with data types. Programmers do not specify explicitly the data types.
dynamic.php
<?php $a = "Jane"; echo "$a \n"; $a = 12; echo "$a \n"; $a = 56.4; echo "$a \n"; $a = true; echo "$a \n"; ?>
In this PHP script, we have an $a
variable. First, we assign it a string, then an integer, a double, and finally a boolean value. If we assign a string to a variable the PHP automatically creates a string variable.
$ php dynamic.php Jane 12 56.4 1
Running the script we get this output.
gettype.php
<?php $temperature = 12.4; $name = "Jane"; $age = 17; $values = array(1, 2, 3, 4, 5, 6); class Being {}; $somebody = new Being(); echo gettype($temperature), "\n"; echo gettype($name), "\n"; echo gettype($age), "\n"; echo gettype($values), "\n"; echo gettype($somebody), "\n"; ?>
In the above PHP script, we dynamically create five types.
$temperature = 12.4;
A double variable is defined.
$name = "Jane";
A string variable is defined.
$age = 17;
An integer variable is defined.
$values = array(1, 2, 3, 4, 5, 6); class Being {};
This is an array and a class. Both types will be covered later in more detail.
echo gettype($temperature), "\n";
The gettype()
function returns the type of the variable in question.
$ php gettype.php double string integer array object
This script lists the basic types of PHP.
PHP constants
In PHP, we can create constants. A constant is a name for a value that, unlike a variable, cannot be reassociated with a different value. We use the define()
function to create constants in PHP.
constants.php
<?php define("BLUE", "0000FF"); echo BLUE, "\n"; echo defined("BLUE"); echo "\n"; ?>
In this PHP script, we define a BLUE
constant.
define("BLUE", "0000FF");
Here we define the BLUE
constant. It is a convention to write constants in uppercase letters.
echo BLUE, "\n";
Here we use it. Note that constants are not preceded by the $
dollar character.
echo defined("BLUE");
We have used another function, the defined()
function. It checks if a particular constant exists. It returns true if it does.
$ php constant.php 0000FF 1
Running the example gives the above output.
PHP also has some predefined constants.
predefined_constants.php
<?php echo TRUE; echo "\n"; echo PHP_VERSION; echo "\n"; echo PHP_OS; echo "\n"; echo __LINE__; echo "\n"; echo __FILE__; echo "\n"; echo DIRECTORY_SEPARATOR; echo "\n"; echo PHP_DATADIR; echo "\n"; ?>
Here we print some built-in PHP constants. For example, the PHP_OS
constant prints the OS version on which the PHP was built.
$ php predefined_constants.php 1 5.6.17 Linux 9 /home/janbodnar/prog/php/basics/predefined_constants.php / /usr/local/share/php
On our system, we get this output.
PHP Variable Interpolation
Variable interpolation is replacing variables with their values inside string literals. Another names for variable interpolation are: variable substitution or variable expansion.interpolation.php
<?php $age = 17; echo "Jane is $age years old\n"; ?>
The $age
variable is replaced with the value 17 in the string enclosed by double quotes.
$ php interpolation.php Jane is 17 years old
This is the output.nointerpolation.php
<?php $age = 17; echo 'Jane is $age years old\n'; ?>
However, this does not work if we use single quotes. In this case, no interpolation happens and no special characters are working.
$ php nointerpolation.php Jane is $age years old\n
We see a verbatim output of the string.
PHP including files
PHP code is split in multiple files for bigger programs. We use the include
statement to join various PHP files.
common.php
<?php define("VERSION", 1.12); function get_max($x, $y) { if ($x > $y) { return $x; } else { return $y; } } ?>
Let’s say, we have a common.php
file, in which we define some constants and functions.
myfile.php
<?php include "common.php"; echo "The version is " . VERSION . "\n"; $a = 5; $b = 3; echo get_max($a, $b), "\n"; ?>
And we have another file which wants to use the aforementioned definitions.
include "common.php";
We simply include the definitions to our file with the include
keyword. We must specify the exact path to the common.php
file. In our simple case, both files are in the same directory.
$ php myfile.php The version is 1.12 5 This is the output.