Hello Simon, First of all, none of your examples cover the case I mentioned, and so, my concerns are still valid.
Secondly, you make some wrong assumptions about how this specific POC works. For example, you write: > function foo(int $d = 20) { var_dump($d); } > foo(null); // This should then also simply fail. Unless I am wrong, the patch will convert null to 0. Lazare INEPOLOGLOU Ingénieur Logiciel 2012/3/12 Simon Schick <simonsimc...@googlemail.com> > 2012/3/12 Lazare Inepologlou <linep...@gmail.com> > > > > function set_check_box_state( bool state = false ) { ... } > > set_check_box_state( null ); // null will be converted to false here... > > > > Therefore, this cannot work, unless the default value becomes null, which > > is against the requirements. What I suggest is something like this: > > > > function set_check_box_state( bool? state = false ) { ... } > > set_check_box_state( null ); // works fine > > > > In my opinion this is much clearer, as it separates the notions of the > > type > > and that of the default value. > > > > > > Lazare INEPOLOGLOU > > Ingénieur Logiciel > > Hi Lazare, > > I'd like to keep the accptance of null as it is for classes and arrays. > Here's an example I wrote earlier: > > function foo(array $d = array()) { var_dump($d); } > foo(null); // This fails with the message: Argument 1 passed to foo() > must be an array, null given > > As this code fails I'd not expect to change this behavior for the new > feature we're discussing here. > > function foo(int $d = 20) { var_dump($d); } > foo(null); // This should then also simply fail. Don't care about > what's the default-value or defined type. > > function foo(int $d = null) { var_dump($d); } > foo(null); // And this should pass it through, providing the > NULL-value in the function. > > function foo(int $d = 20) { var_dump($d); } > foo( (int)null ); // This can provide 0 as the programmer forcing it > to be an integer before putting it into this function-call. > > I would personally not like to give the user the option to set a > null-value if it's not the default. > But .. I don't wanna screw up your idea. > > Bye > Simon >