PHP Programming/Beginning with "Hello World!"
Return to The Basics.
The Code edit
Simple Hello World edit
This is as basic as PHP gets. Three simple lines, the first line identifies that everything beyond the <?php tag is PHP code (until the end of the file, or until a ?> tag). The second and third lines write a text greeting on the web page. This next example is slightly more complex and uses variables.
Hello World With Variables edit
The previous example contained two outputs. PHP can output HTML that your browser will format and display. The PHP Output box is the exact PHP output. The HTML Render box is approximately how your browser would display that output. Don't let this confuse you, this is just to let you know that PHP can output HTML. We will cover this much more in depth later.
New Concepts edit
Variables are the basis of any programming language: they are "containers" (spaces in memory) that hold data. The data can be changed, thus it is "variable".
If you've had any experience with other programming languages, you know that in some of the languages, you must define the type of data that the variable will hold. Those languages are called statically-typed, because the types of variables must be known before you store something in them. Programming languages such as C++ and Java are statically-typed. PHP, on the other hand, is dynamically-typed, because the type of the variable is linked to the value of the variable. You could define a variable for a string, store a string, and then replace the string with a number. To do the same thing in C++, you would have to cast, or change the type of, the variable, and store it in a different "container".
All variables in PHP follow the format of a dollar sign ($) followed by an identifier i.e. $variable_name. These identifiers are case-sensitive, meaning that capitalization matters, so $wiki is different from $Wiki.
Real world analogy edit
To compare a variable to real world objects, imagine your computer's memory as a storage shed. A variable would be a box in that storage shed and the contents of the box (such as a cup) would be the data in that variable.
If the box was labeled kitchen stuff and the box's contents were a cup, the PHP code would be:
$kitchen_stuff = 'cup';
If I then went into the storage shed, opened the box labeled kitchen stuff, and then replaced the cup with a fork, the new code would be:
$kitchen_stuff = 'fork';
Notice the addition of the
= in the middle and the
; at the end of the code block. The
= is the assignment operator, or in our analogy, instructions that came with the box that states "put the cup in the box". The
; indicates to stop evaluating the block of code, or in our analogy, finish up with what you are doing and move on to something else.
Also notice the cup was wrapped in single quotes instead of double. Using double quotes would tell the PHP parser that there may be more than just a cup going into the box and to look for additional instructions.
$bathroom_stuff = 'toothbrush';
$kitchen_stuff = "cup $bathroom_stuff";
//$kitchen_stuff contents is now '''cup toothbrush'''
Single quotes tell the PHP parser that it's only a cup and not to look for anything more. In this example the bathroom box that should've had its contents added to the kitchen box has its name added instead.
$bathroom_stuff = 'toothbrush';
$kitchen_stuff = 'cup $bathroom_stuff';
//$kitchen_stuff contents is now '''cup $bathroom_stuff'''
So again, try to visualize and associate the analogy to grasp the concept of variables with the comparison below. Note that this is a real world object comparison and NOT PHP code.
Computer memory (RAM) = storage shed Variable = a box to hold stuff Variable name = a label on the box such as kitchen stuff Variable data = the contents of the box such as a cup
Notice that you wouldn't name the variable
box, as the relationship between the variable and the box is represented by the
$ and how the data is stored in memory. For example, a constant and array can be considered a type of variable when using the box analogy as they all are containers to hold some sort of contents, however, the difference is on how they are defined to handle the contents in the box.
Variable: a box that can be opened while in the storage shed to exchange the contents in the box.
Constant: a box that cannot be opened to exchange its contents. Its contents can only be viewed and not exchanged while inside the storage shed.
Array: a box that contains one or more additional boxes in the main box. To complicate matters for beginners, each additional box may contain a box as well. In the kitchen stuff box we have two boxes, the clean cup box
$kitchen_stuff["clean_cup"] = 'the clean cup';
and the dirty cup box
$kitchen_stuff["dirty_cup"] = 'the dirty cup';
More on variables, from the PHP manual
The print and echo statements edit
Print is the key to output. It sends whatever is in the quotes (or parentheses) that follow it to the output device (browser window). A similar function is echo, but print allows the user to check whether or not the print succeeded.
The quoted text is treated as if it were a string, and thus can be used in conjunction with the concatenation (joining two strings together) operator as well as any function that returns a string value.
The dot symbol concatenates two strings. In other programming languages, concatenating a string is done with the plus symbol and the dot symbol is generally used to call functions from classes.
Also, it might be useful to note that under most conditions echo can be used interchangeably with print. print returns a value, so it can be used to test, if the print succeeded, while echo assumes everything worked. Under most conditions there is nothing we can do, if echo fails.
We will use echo in most sections of this book, since it is the more commonly used statement.
It should be noted that while echo and print can be called in the same way as functions, they are, in fact, language constructs, and can be called without the brackets. Normal functions (almost all others) must be called with brackets following the function identifier.