Hi Marcus!

Am Dienstag, den 06.05.2008, 21:45 +0200 schrieb Marcus Boerger:
[...]
> All fine with me. However we *would* need to specify which function is
> getter, setter, isset or unset. 

[...]
> 
> public $property {
>   string public function __get() {
>     return $this->_property;
>   }
>   string protected function __set(string $value) {...}
> }

That's the variant I prefer. It is pretty similar to the C# does it and
therefore follows the common PHP strategy of steeling everything
together ;)

[...]
> The advantage of keeping everything inside the property definition is that
> there is no need at all for any new keyword. And the handlers cannot get
> separated. The disadvantage is that the functions are always named __get and
> so on for all properties, so PHP would need to do an internal renaming.
> Which means we probably would not be able to call the functions manually.

Do you see any real use-case for calling them directly?

> That larger handlers could clutter the code doesn't appear to be a
> disadvantage for me as it can easily be avoided if the handler just
> forwards the call.

Either that or folding in the editor helps etc. pp.

> The next question I have now is what to do when people want direct access
> to the underlying value? 

I would think that accessing $this->property from __get()/__set() of the
property would address the value itself. Everything else would be
redirected to the accessors.

> Or do we force people to always specify get,set,isset und unset? Or
> should we only enforce get/set and have isset
> and unset emulated with them (isset()~>isset(get()),
> unset()~>set(NULL))?

Not sure about that. Forcing the user to define four accessors for a
property seems to be clutter but it would be - technically spoken -
correct. I don't have a fixed opinion here.

cu, Lars

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to