|
Posted by Matthew Weier O'Phinney on 08/17/05 18:51
* D A GERM <dgerm@shepherd.edu>:
> I'm throwing a warning on a function I created. I
> thought a & in front of the argument was supposed to
> make it optional. Is there something else I need to do
> make that argument optional?
As others have noted, the ampersand tells the function to grab a
reference to the variable passed.
There are two ways to do optional arguments:
1) Set a default value for the argument (must be last argument in the
list, or else all other arguments in the list must also have default
values):
function doEmail($username, $link = null) {}
function doEmail($username, $link = null, $linkName = '') {}
2) Parse the argument list via the func_* functions:
function doEmail($username)
{
$argCount = func_num_args();
if (1 < $argCount) {
// Retrieve second argument, from a 0-based array:
$link = func_get_arg(1);
}
...
}
function doEmail($username)
{
$argCount = func_num_args();
if (1 < $argCount) {
// Retrieve all arguments
$args = func_get_args();
// Remove $username from it
array_shift($args);
// Get $link:
$link = array_shift($args);
}
...
}
--
Matthew Weier O'Phinney
Zend Certified Engineer
http://weierophinney.net/matthew/
[Back to original message]
|