This chapter is from the book

This chapter is from the book

PHP is an easy language and you'll find it an easy task to get used to
PHP. In this chapter you learn to write simple PHP applications. You learn the
basics of PHP syntax as well as PHP's built-in functions.

3.1 Getting Started

In this section you learn to write simple applications. The basics of
PHP's interpreter are also covered in detail.

3.1.1 "Hello World"

The first application you will find in most books about computer programming
is "Hello World". "Hello World" is easy to implement in all
languages because it does nothing except print a string on the screen, so it is
a good start. Here is the easiest version of "Hello World" written in
PHP:

<?php
echo 'hello world<br>';
?>

With just three lines of code, you can print a simple message on the screen.
The first line of code tells the Web server that the next lines of code have to
be executed by the PHP interpreter. ?> means that the code ends here. Using
<?php is not the only possible way to tell the Web server that PHP code has
to be executed. PHP provides three additional ways to escape from HTML:

In the first three lines, you can see that it is not necessary to mention
that the PHP interpreter has to be called. This method of escaping HTML is
possible only when short tags are enabled (you can do this by setting the
short_open_tag option in PHP's configuration file). However, to make clear
which programming language is meant, we recommend using <?php instead of
<?.

The third method can be used if Active Server Pages (ASP) tags are enabled.
If ASP tags are turned off, <% and %> will be treated
like ordinary text and the PHP code will not be interpreted. Therefore we
recommend using either <?php or <script
language="php"> to tell the Web server what to do with the PHP
code. In this book we will use <?php to escape HTML.

If you have put the file containing the code into the right directory (see
the documentation and configuration of your Web server to find the right
directory), you can execute the script by accessing it in your Web browser. If
the file is called hello.php and if it is in the default HTML directory
of your local machine, it can easily be accessed by using
http://localhost/hello.php.
You do not have to add execute rights to the file because the Web server only
has to read the file.

If everything has been done correctly, PHP has been configured successfully,
and your Web server has been started, hello world will be displayed on
the screen.

Your first version of "Hello World" produces just text.
However, the main target of a PHP program is to generate HTML code. In the next
example, you will see a small script generating the HTML version of
"Hello World".

As you can see, the PHP code is included in the HTML code. <?php tells the
server that the PHP interpreter has to be started here. In the example you can
see that parts of the document are static and other parts of the document are
created dynamically by PHP.

Another way to obtain the same target would be to generate the entire
document dynamically. This will be slower than the version you have just seen,
but in some cases it makes sense or is necessary to generate everything
dynamically. Let's have a look at the following code:

The first echo command consists of two parts. The first three lines can be
found between two single quotes. PHP recognizes that the command continues in
the next line and does not end in the first line of the echo command. This way
multiple lines can be treated as one command. Another way is to use a string
operation as you can see at the end of line number 3 of the echo command. After
the single quote, we use a point to tell PHP that the first string, which has
just ended, has to be connected with the next string. In this case the second
string is </head>. All components of the first echo command are passed to
PHP in single quotes.

The second echo command contains the text we want to be displayed on
the screen. This time we pass the text to echo using double quotes.
Using single quotes or double quotes makes a significant difference: Single
quotes are used to pass static text to PHP. Using double quotes allows you to
use variables within the string. Knowing this difference is important because
otherwise you might run into trouble. When executing the script you have just
seen, the result will be a simple HTML document:

The HTML is still not more than a simple "Hello World" application,
but it is already HTML code.

3.1.2 Variables

Variables are a core component of almost every programming language
available, and without variables it would be impossible to write useful
applications. The idea behind variables is to have a language component that can
have different values assigned to it. It is also possible to use variables as
containers for storing data that is used in many different places in your
application. Let's imagine an example where you want to display the same
text on the screen twice:

First, you assign the string you want to be displayed on the screen to the
variable called text. In the next step some HTML code is generated and the
variable is printed on the screen twice. Keep in mind that we have to use double
quotes instead of single quotes; otherwise, the result would be:

$text
$text

With single quotes, variables cannot be used within a string, so the result
is not what you want it to be.

Figure 3.1 shows what comes out when
you look at the result using Mozilla.

3.1.3 Adding Comments

Documentation is nearly as important as the code of a program. Nowadays only
10% of all costs of producing a software product are used for writing the source
code. The remaining 90% are used for maintaining the product (this information
is provided by the University of Vienna). To reduce the costs of maintaining a
product and to reduce the time required to become familiar with the source code,
it is essential to add comments to your programs. PHP provides some simple ways
to add comments to a program:

In PHP comments can be added to the code as in C and C++. // tells the
interpreter that the entire line should not be executed. /* */ is the old C
style, which is also supported by PHP. C-style comments can be used to insert
commands consisting of multiple lines:

<?php
/*
a C-style comment
which is longer than just one line.
*/
?>

We recommend making heavy use of comments to make your code clearer and
easier to understand. Especially if you are not the only one who will have to
work with the code, comments will make your daily life much easier.

3.1.4 Executing PHP from the Command Line

In many cases it is useful to execute PHP code from the command line instead
of executing the script by starting it using a Web browser.

Let's return to the three-liner called hello.php that we
discussed at the beginning of this chapter:

As you can see, PHP produces more output than just "hello world".
The additional information created by PHP defines which output has been created
by PHP. In this case it is text/html. To make sure that the entire output is
sent to standard output and not to standard error, we redirect all errors
returned by PHP and see what comes out:

As you can see, PHP provides a lot of options you can use from the command
line directly. Many developers use only a Web browser to build and to debug PHP
applications. Using PHP's command-line parameters can make life much
easier; we strongly recommend making heavy use of these features.

One of the most important command-line flags is the -m flag, which
you can use to ask PHP which modules have been compiled. This is extremely
important if you have not compiled PHP yourself or if you no longer know which
modules you added at compile time:

As you can see, the standard PHP distribution included in Red Hat 7.1
supports a lot of modules. You will learn about many of these modules in this
book, which will guide you through the details of these modules. One module you
will have a very close look at is the pgsql module, which is responsible for
interacting with PostgreSQL databases.

An important command-line flag of the PHP interpreter is the -i
flag, which can be used to generate information about PHP itself. To generate
the result, you can use the following:

[hs@athlon test]$ php -i > /tmp/phpinfo.html

The HTML file that has been generated is very long, so it is not included
here.