In PHP, all variable names begin with a dollar sign
($
). The $
is followed by an
alphabetic character or an underscore, and optionally followed by a
sequence of alphanumeric characters and underscores. There is no
limit on the length of a variable. Variable names in PHP are
case-sensitive. Here are some examples:
$i $counter $first_name $_TMP
In PHP, unlike in many other languages, you do not have to explicitly declare variables. PHP automatically declares a variable the first time a value is assigned to it. PHP variables are untyped; you can assign a value of any type to a variable.
Sometimes it is useful to set and use variables dynamically. Normally, you assign a variable like this:
$var = "hello";
Now let’s say you want a variable whose name is the value of
the $var
variable. You can do that like this:
$$var = "World";
PHP parses $$var
by first dereferencing the
innermost variable, meaning that $var
becomes
"hello"
. The expression that is left is then
$"hello"
, which is just $hello
.
In other words, we have just created a new variable named
hello
and assigned it the value
"World"
. You can nest dynamic variables to an
infinite level in PHP, although once you get beyond two levels, it
can be very confusing for someone who is trying to read your code.
There is a special syntax for using dynamic variables inside quoted strings in PHP:
echo "Hello ${$var}";
This syntax is also used to help resolve an ambiguity that occurs
when variable arrays are used. Something like
$$var[1]
is ambiguous because it is impossible for
PHP to know which level to apply the array index to.
${$var[1]}
tells PHP to dereference the inner
level first and apply the array index to the result before
dereferencing the outer level. ${$var}[1]
, on the
other hand, tells PHP to apply the index to the outer level.
Dynamic variables may not initially seem that useful, but there are times when they can shorten the amount of code you need to write to perform certain tasks. For example, say you have an associative array that looks like this:
$array["abc"] = "Hello"; $array["def"] = "World";
Associative arrays like this are returned by various functions in the
PHP modules. mysql_fetch_array( )
is one example.
The indices in the array usually refer to fields or entity names
within the context of the module you are working with. It can be
handy to turn these entity names into real PHP variables, so you can
refer to them as simply $abc
and
$def
. This can be done as follows:
while(list($index,$value) = each($array)) { $$index = $value; }
3.137.218.230