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
>

Reply via email to