On Tue, Oct 28, 2014 at 2:17 PM, Jordi Boggiano <j.boggi...@seld.be> wrote:
> On 27/10/2014 20:27, Andrea Faulds wrote:
>>
>> Tentative syntax. But this way, the visibility stays on the left. I think
>> that’s good for readability. If you omit the second specifier, then the
>> first one applies to getting and setting, as now. If you include it, the
>> first one applies to getting, the second one to setting.
>>
>> It’d also be compatible with properties, too:
>>
>>      public/private $foobar {
>>          get { return $this->bar * $this->foo; }
>>          set($value) { $this->bar = $value / $this->foo; }
>>      }
>>
>> It doesn’t prevent truly read-only properties, either:
>>
>>      public $foobar {
>>          get { return $this->bar * $this->foo; }
>>      }
>>
>> Does this sound like a good idea? A similar idea came up in the
>> discussions 8 years ago on readonly.
>
>
> I like it, except for the fact that if you add a custom getter to a property
> suddenly it becomes readonly unless you remember to add "; set" to the end
> of the block, right?
>
> How about this instead for readonly:
>
>       public $foobar {
>           get { return $this->bar * $this->foo; }; readonly
>       }
>
> And if the flag isn't there, set is implicitly present.
>
> That'd mean you also can keep "public readonly $foobar;" as a shorthand for
> readonly properties without custom getter.

I like this idea.

Also confirmed what I was trying to say: While we can have many RFCs
covering the properties properties and behavior, having one covering
the needs in one go will allow us to be more consistent and developer
friendly.


-- 
Pierre

@pierrejoye | http://www.libgd.org

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to