note 15567 added to function.func-get-args

From: Date: Tue, 18 Sep 2001 03:29:10 +0000
Subject: note 15567 added to function.func-get-args
Groups: php.notes 
Request: Send a blank email to php-notes+get-18105@lists.php.net to get a copy of this message
<?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"); ?> http://www.php.net/manual/en/function.func-get-args.php

« previous php.notes (#18105) next »