On Tue, 25 Sep 2001 09:36:57 -0500, you wrote:
>>> <?php
>>> function foo($p) { echo $p['fred'] . $p['banana']; }
>>> foo(array('fred' => 'hello', 'banana' => 'world'));
>>> ?>
>> Yeap, I know that. I thought about this bit of hack but this breaks the
>> conception on giving parameters. Also this trick cannot
>> solve the problem with default parameters. If I have function with 5
>> params and all of them have default values and I want to pass
>> value only to the second parameter what I have to do?
>Maybe this? A bit verbose, but functional.
><?php
>function foo($p)
>{
> if (empty($p['fred']))
> $p['fred'] = 'hello'; // same for banana
> echo $p['fred'] . $p['banana'];
>}
>foo(array('fred' => 'hello', 'banana' => 'world'));
>?>
>steve
I'm not keen on adding lots of multi-line if statements - I prefer tp
put things into arrays where I can. Easier to update them.
<?php
function foo($p)
{
$foodefault = array( // prefix matching the name in 'extract'
'foo_fred'=> '<strong>default fred</strong>',
'foo_banana' => '<strong>default bananananana</strong>',
);
extract ($p, EXTR_PREFIX_ALL, 'foo'); // get params
extract ($foodefault, EXTR_SKIP, "foo"); // get defaults
echo "$foo_fred / $foo_banana";
}
echo "Both in place: ";
foo(array('fred' => 'hello', 'banana' => 'world'));
echo "<br /> Now with a missing param: ";
foo(array('fred' => 'hello'));
echo "<br /> Now both missing params: ";
foo(array());
?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]