6.2.1 Problem
6.2.2 Solution
function commercial_sponsorship($letter, $number) {
print "This episode of Sesame Street is brought to you by ";
print "the letter $letter and number $number.\n";
}
commercial_sponsorship('G', 3);
commercial_sponsorship($another_letter, $another_number);
6.2.3 Discussion
Inside the function, it doesn't matter
whether the values are passed in as strings, numbers, arrays, or another kind of
variable. You can treat them all the same and refer to them using the names from
the prototype.
Unlike in C, you don't need to (and, in fact, can't) describe
the type of variable being passed in. PHP keeps track of this for you.
Also, unless specified, all values being passed into and out
of a function are passed by value, not by reference. This means PHP makes a copy
of the value and provides you with that copy to access and manipulate.
Therefore, any changes you make to your copy don't alter the original value.
Here's an example:
function add_one($number) {
$number++;
}
$number = 1;
add_one($number);
print "$number\n";
1
If the variable was passed by reference, the value of
$number would be 2.
In many languages, passing variables by reference also has the
additional benefit of being significantly faster than by value. While this is
also true in PHP, the speed difference is marginal. For that reason, we suggest
passing variables by reference only when actually necessary and never as a
performance-enhancing trick.