Here is a copy of what Dennis had written to me regarding automatic 
implementations from C# (the model):

> Originally, C# did not support automatically implemented properties. 
> There are several reasons why they were added.  The first reason, is that 
> while the syntax for properties is the same as the syntax for member 
> variables, there is still some subtle differences in behaviour that cannot be 
> accounted for by properties.  Here are some examples:

> - Variables may be used as input to out/ref arguments. Properties may not.
> - Properties may throw exceptions - variables will never do that.
> - Properties may have side effects or take a really long time to execute.
> Variables have no side effects and will always be as fast as can be expected 
> for the given type.
> - Properties support different accessibility - variables do not
> - When using reflection the properties and fields are treated as different 
> MemberTypes so are located differently (GetFields vs GetProperties for
example)

Some of these above example still apply (reflection, execution time), so the 
automatic implementations may simply be there as a way for authors to indicate 
their intention to make them execute code at a later time.

This suggestion below shortens the syntax even further.

-----Original Message-----
From: Stas Malyshev [mailto:smalys...@sugarcrm.com] 
Sent: Tuesday, April 24, 2012 12:11 PM
To: Benjamin Eberlei
Cc: internals@lists.php.net
Subject: Re: [PHP-DEV] RFC: Property get/set syntax (added isset/unset and 
references)

Hi!

> would it be possible to add a second shorthand syntax to the complete 
> automatic implementation?
> 
> Examples:
> 
> class TimePeriod
> {
>     public $Hours {};
>     public property $Hours;
>     public $Hours {property};
> }

How it is different from just public $Hours and why one would need this?

--
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227

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


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

Reply via email to