An Introduction to PHP Variables

Revision as of 16:43, 25 May 2007 by Neil (Talk | contribs) (Accessing PHP Variable Values)

Revision as of 16:43, 25 May 2007 by Neil (Talk | contribs) (Accessing PHP Variable Values)

A large part of writing scripts, and for that matter programming in general, involves the handling and manipulation of data. Data can take many forms, ranging from single characters, words and sentences to integers, floating point numbers and true and false values. In object oriented environments such as PHP, data can also take the form of an object, a self contained module which is capable of encapsulating any number of data values of numerous different types.

When working with data values in PHP we need some convenient way to store these values so that we can easily access them and make reference to them whenever necessary. This is where PHP variables come in.

It is often useful to think of variables as computer memory locations where data is to be stored. When declaring a variable in PHP it is assigned a name that can used to reference it in other locations in the PHP script. The value of the variable can be accessed, the value can be changed, and the type of variable can be altered all by reference the name assigned at variable creation time.

Naming and Creating a Variable in PHP

Before learning how to declare a variable in PHP it is first important to understand some rules about variable names (also known as variable naming conventions). All PHP variable names must be pre-fixed with a $. It is this prefix which informs the PHP pre-processor that it is dealing with a variable. The first character of the name must be either a letter or an underscore (_). The remaining characters must comprise only letters, numbers or underscores. All other characters are deemed to be invalid for use in a variable name.

Let's look at some valid and invalid PHP variable names:


$_myName // valid
$myName  // valid
$__myvar // valid
$myVar21 // valid
$_1Big   // invalid - underscore must be followed by a letter
$1Big    // invalid - must begin with a letter or underscore
$_er-t   // invalid contains non alphanumeric character (-)

Variable names in PHP are case-sensitive. This means that PHP considers $_myVariable to be a completely different variable to one that is named ''$_myvariable.

Assigning a Value to a PHP Variable

Values are assigned to variables using the PHP assignment operator. The assigment operator is represented by the = sign. To assign a value to a variable therefore, the variable name is placed on the left of the expression, followed by the assignment operator. The value to be assigned is then placed to the right of the assigment operator. Finally the line, as with all PHP code statements, is termininated with a semi-colon (;).

Let's begin by assigning the word "Circle" to a variable named myShape:

$myShape = "Circle";

We have now declared a variable with the name myShape and assigned a string value to it of "Apple". We can similarly declare a variable to contain an integer value:

$numberOfShapes =  6;

The above assigment creates a variable named numberOfShapes and assigns it a numeric value of 6.


Accessing PHP Variable Values

Now that we have learned how to create a variable and assign an initial value to it we now need to look at how to access the value currently assigned to a variable. In practice, accessing a variable is as simple as referencing the name it was given when it was created.

For example, if we want to display the value which we assigned to our numberOfShapes variable we can simply reference it in our echo command:

<?php
echo "The number of shapes is $numberOfShapes.";
?>

This will cause the following output to appear in the browser:

The number of shapes is 6.

Similarly we can display the value of the myShape variable:

<?php
echo "$myShape is the value of the current shape.";
?>

The examples we have used for accessing varaible values are straightforward because we have always had a space character after the variable name. The question arises as to waht should be done if we need to put other characters immediately after the variable name. For example:

<?php
echo "The Circle is the $numberOfShapesth shape";
?>

What we are looking for in this scenario is output as follows:

The Circle is the $numberOfShapesth shape

Unfortunately PHP will see the th on the end of the $numberOfShapes variable name as being part of the name. It will then try to output the value of a variable called $numberOfShapesth, which does not exist. This result in nothing being displayed for this variable:

The Circle is the shape

Fortunately we can get around this issue by placing braces ({ and }) around the variable name to distinguish the name from any other trailing characters:

<?php
echo "The Circle is the ${numberOfShapes}th shape";
?>