Hi!

>> - Variables may be used as input to out/ref arguments. Properties
>> may not.

This will probably be true for properties too, in some cases. However,
it is in no way an advantage.

>> - Properties may throw exceptions - variables will never do that.

In PHP, properties can not throw exceptions unless your code does, and
variable access can throw exceptions too if you do that in __get.

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

Again, depends on __get.

>> - Properties support different accessibility - variables do not

In PHP, variables have access modifiers.

>> - When using reflection the properties and fields are treated as
>> different MemberTypes so are located differently (GetFields vs
>> GetProperties for
> example)

It may be so, but I don't see where there's an advantage.
So, none of these explain why would one want to create "default
implementation" property. Could you explain?

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

If they would want to make them execute code at a later time, they could
convert them to properties then. I think the whole point of introducing
properties is that they would work transparently for the client, so if
we saying we'd have to pre-define them as properties that defeats the
whole purpose of it. I think as proposed "default implementation" only
makes it more confusing as it works differently from user-space
implementations.
-- 
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

Reply via email to