On Mon, Jul 16, 2012 at 5:24 PM, Amaury Bouchard <[email protected]> wrote:
> Yes, but only if you have to write an accessor.
> If you just want an attribute that is:
> - readable from everywhere
> - writable from the current class only
>
> With my syntax:
> public:private $a; (read it aloud "public reading, private writing")
>
> With the existing RFC:
> public $a {
> private set { $this->a = $value; }
> }
>
> Which one is better? Why should I write code for that?
>
> If you read the existing RFC, you'll see that all examples involve a
> specific case: when you have a "fake" attribute, which manipulates date
> stored in other attributes. The given example is an $Hours attributes, which
> is calculated from the private $Seconds attribute.
> Again, it could be very useful. But it doesn't work all the time.
You can also just write public $a { get; private set; }. I see that
the syntax is a bit more verbose, but I definitely prefer it to the
obscure public:private notation. With the getters/setters the meaning
is somewhat clear (public get, private set), with the colon notation
it isn't really clear.
Nikita
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php