Nikita,

2013/1/10 Nikita Popov <nikita....@gmail.com>

> On Tue, Jan 8, 2013 at 7:03 PM, Steve Clay <st...@mrclay.org> wrote:
>
> > On 1/8/13 2:56 AM, Christian Stoller wrote:
> >
> >> 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'
> >>
> >
> > Much agreed. After instantiation, these shouldn't behave differently:
> >
> > public     $foo = null;
> > public Foo $foo = null;
> >
> > Sure, method signatures have special behavior based on a default value,
> > but IMO:
> > 1. those semantics aren't entirely intuitive to begin with
> > 2. property initializers aren't method sigs
> > 3. the semantics would apply only to some properties
> >
> >
> >
> >       public DateTime? $date;
> >>
> >> In C# the question mark after a type is a short hand for a generic
> >> Nullable type.
> >>
> >
> > I like that it's an established practice of doing exactly what we're
> > trying to do.
> >
> > Could we not just make it obvious?:
> >
> > public Foo|null $foo;
> >
>
> I updated the RFC to include the current state regarding default value and
> nullability:
>
> https://wiki.php.net/rfc/propertygetsetsyntax-alternative-typehinting-syntax
>
> One question that still needs to be discussed is what syntax regarding
> parentheses we want to use if this makes it. Currently both set { } and
> set($foo) { } style accessors are supported. Do we want to keep those two
> with the new syntax?
>
> Nikita
>
> PS: I hope I'm not interrupting all those heated annotations discussion too
> much ^^
>



In the RFC, one thing is not clear: How to provide typehints for nullable
properties that actually have accessors.

Will it be like this?

public DateTime $date = null {
  get { ... }
  set { ... }
}




Lazare INEPOLOGLOU
Ingénieur Logiciel

Reply via email to