On Thu, 2004-05-13 at 11:41, Gregory wrote:
> Rudy Metzger wrote:
> 
> >Although you are correct with your explanations to better use methods
> >and private/protected attributes, this is not the core of the problem.
> >The problem is that self:: always refers to the current class (A or B or
> >C), so if you would call self::Something() in C it would not access
> >A::Something(). The same counts for parent::. It only accesses the
> >instance DIRECTLY below. 
> >
> >An yes, A::$myInstance is easy to remember. But what if I put it into B
> >at some later points, because I am shifting around class structure (for
> >whatever well thought out reason)? Then I would have to change all
> >occurances of A::$myInstance, which I really do not want.
> >
> >I think a good solution for this would be to modify parent::, that it
> >does not only access its DIRECT superclass, but goes up the hierarchy
> >until the static variable is found.
> >
> >Cheerio
> >/rudy
> >
> >
> I understand what you want to do (or to avoid). Yes, by directly access 
> static
> functions/properties, class hierarchy becomes useless and doesn't allow 
> a complete
> modularity anymore.
> Then the parent:: keyword must go up until a matching function/variable 
> is found.
> You're totally right on this.
> 
> Greg

Actually only modifying parent:: does not solve it, because the static
could be in self:: - thus either self:: also has to go up the hierarchy
or a new keyword (static::, class::) is invented. Or even better: Why
not allow this:: to access static variables, e.g. this::$myInstance.
Would make the most sense, i guess.

Cheerio
/rudy

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to