PHPverse 2025

Voting

The Note You're Voting On

daveNO at ovumSPAMdesign dot com
23 years ago
<?php
// How to simulate named parameters in PHP.
// By Dave Benjamin <dave@ovumdesign.com>

// Turns the array returned by func_get_args() into an array of name/value
// pairs that can be processed by extract().
function varargs($args) {
$count = count($args);
for (
$i = 0; $i < $count; $i += 2) {
$result[$args[$i]] = $args[$i + 1];
}

return
$result;
}

// Example
function test(&$ref1, &$ref2) {
// Default arguments go here.
$foo = "oof";

// Do some magic.
extract(varargs(func_get_args()));

echo
nl2br("\n\$var1 = $var1");
echo
nl2br("\n\$var2 = $var2");
echo
nl2br("\n\$foo = $foo\n\n");

// Modify some variables that were passed by reference.
// Note that func_get_args() doesn't pass references, so they
// need to be explicitly declared in the function definition.
$ref1 = 42;
$ref2 = 84;
}

$a = 5;
$b = 6;

echo
nl2br("Before calling test(): \$a = $a\n");
echo
nl2br("Before calling test(): \$b = $b\n");

// Try removing the 'foo, "bar"' from the following line.
test($a, $b, var1, "abc", var2, "def", foo, "bar");

echo
nl2br("After calling test(): \$a = $a\n");
echo
nl2br("After calling test(): \$b = $b\n");
?>

<< Back to user notes page

To Top