An Introduction to PHP Variables
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 assignment creates a variable named numberOfShapes and assigns it a numeric value of 6. Once a variable has been created, the value assigned to that variable can be changed at any time using the same assignment operator approach:
<?php $numberOfShapes = 6; // Set initial values $myShape = "Circle"; $numberOfShapes = 7; // Change the initial values to new values $myShape = "Square"; ?>
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 6th 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"; ?>
To give us the desired output:
The Circle is the 6th shape.
Changing the Type of a PHP Variable
As we mentioned at the beginning of this chapter PHP supports a number of different variable types (specifically integer, float, boolean, array, object, resource and string). We will look at these types in detail later in this chapter. First we are going to look at changing the type of a variable after it has been created.
PHP is what is termed a loosely typed language.