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