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 ^^