Hi. I like the proposal of this RFC very much ;-)

But the way 'nullable' properties are defined is not very intuitive and 
unclean, in my opinion. Stas has already mentioned that. 
`public DateTime $date = NULL;` // this looks like the property is initialized 
with null, but it does not show that the property is 'nullable'

If type hinted properties are not allowed to be set to null, I would propose 
this way to make a property nullable:

    public DateTime? $date;

In C# the question mark after a type is a short hand for a generic Nullable 
type.


-----Original Message-----
From: Nikita Popov [mailto:nikita....@gmail.com] 
Sent: Saturday, January 05, 2013 1:48 AM
To: Steve Clay
Cc: PHP internals
Subject: Re: [PHP-DEV] [RFC] Alternative typehinting syntax for accessors

On Sat, Jan 5, 2013 at 12:31 AM, Steve Clay <st...@mrclay.org> wrote:

> Would the following two be exactly functionally equivalent?
>
> public Foo $foo;
>
> public $foo {
>     get;
>     set(Foo $value) { $this->foo = $value; }
> }
>
> We should also consider how an author would allow type-hinted properties
> to accept NULL as a new value, in both proposals.
>

I think that's a very interesting question, thanks for bringing it up. I
think a good approach here would be the same one used for function argument
typehints, i.e. allow NULL when NULL is specified as the default value. So
`public DateTime $date;` would not allow an explicit NULL assignment,
whereas `public DateTime $date = NULL;` would.

Nikita

Reply via email to