I am sorry Lester, but you seem to be getting the "optional parameter"
backwards.

You are supposed to use the optional parameters when it's up to the
library/function definition to determine it's value, not when the
value is what you want for this particular function call!

What you seem to be currently reading from a function definition when
using it is i.e.: "This parameter's default is TRUE? That's what I
need it to be here, skip typing it!"
This is the wrong approach for proper design, and you will have a lot
of headaches when refactoring!

If you use them *properly*, what you read when using the function call
is "I don't need/want to change the default value for this optional
parameter, use what the library determines!", this is the proper way
to use a function call with optional parameters, that will give you a
LOT less headaches!


The problem with the way things work currently, is that the default
value, is now *hard coded* into all function calls were you wanted to
use the default, but needed to define a latter optional parameter!

Hence the proper use would be to either use a reserved word, or having
named parameters.
I personally think there's a place for having both.



> Daniel Macedo wrote:
>>
>> function fn1($a = false, $b = nul, $c = 1)
>> {
>>   var_dump($a, $b. $c);
>> }
>>
>> // your idea
>> fn1(NULL, NULL, 10), // NULL, NULL, 10
>>
>> // vs. using a reserved word
>> fn1(default, default, 10), // FALSE, NULL, 10
>
>
> Of cause one little problem here is if the default gets changed in the
> 'library' then every use of 'default' would need to be checked.
> Of cause the same problem applies with changing defaults that are used by
> leaving out the latter parameters on the list, but this just adds another
> area that needs cross checking. Always including the parameters needed is
> the safe way in many cases anyway! So leaving them off can be bad practice
> anyway?
>
>
> --
> Lester Caine - G8HFL
> -----------------------------
> Contact - http://lsces.co.uk/wiki/?page=contact
> L.S.Caine Electronic Services - http://lsces.co.uk
> EnquirySolve - http://enquirysolve.com/
> Model Engineers Digital Workshop - http://medw.co.uk//
> Firebird - http://www.firebirdsql.org/index.php
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to