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