That has not been covered and it is a problem, just tested it.

Anyone have any preferences on a resolution?

Only thing that really needs to occur is that the function names need to be unique, we could prefix any capitals in a variable name with an additional _ such that:

class A {
    public $Foo { get; set; }
    public $foo { get; set; }
}

Would mean there would be these function names:
A::__get_Foo();
A::__set_Foo();
A::__getfoo();
A::__setfoo();

Along w/ their unset/isset'rs.

This is what happens as of right now:

Fatal error: Cannot redeclare a::__getfoo() in /opt/php-core/git/trunk-accessor/cpriest/php/quick2.php on line 9

Good catch on that one.

On 1/2/2013 11:52 PM, Steve Clay wrote:
On Jan 2, 2013, at 10:24 PM, Clint Priest <cpri...@zerocue.com> wrote:
I've updated the Shadowing section of the RFC which I hope clears this up, it 
also includes a slightly modified version of your example at the bottom with 
comments.
Updated RFC really helps. The notion of $this->prop access semantics depending 
on which accessor you're in seems important for the RFC as I think it will seem 
foreign to a lot of devs.

When I make traditional PHP "accessor" methods, I have complete control; if I 
want getFoo() to set private $foo without calling setFoo(), I can. Not so with real 
accessors. Probably a good thing :)

One more concern, sorry if it was covered already: will case-insensitivity of 
methods mean you can't define getters for both $foo and $Foo?

Steve

--
-Clint

Reply via email to