* Thus wrote Rudy Metzger ([EMAIL PROTECTED]):
> Dear all,
> 
> I have a problem with 'referencing' static attributes. I have the
> following class tree.
> 
> // --- CLASS A -----------------------------
> class A
> {
>   protected static $myInstance;
> }
> 
> // --- CLASS B ------------------------------
> class B extends class A
> {
> }
> 
> // --- CLASS C ------------------------------
> class C extends class B
> {
> 
> public function Debug()
> {
>   echo self::$myInstance;     // does not work (undefined)
>   echo parent::$myInstance;  // also does not work
>   echo A::$myInstance;         // works
> }
> 
> }
> 
> -----------------------------------------
> The Problem is that you always have to know in which class the static
> was defined to reference it. Or is there something like
> static::$myInstance or this::$myInstance or class::$myInstance. If not,
> it maybe would be a great idea to add something to PHP, otherwise you
> always have to track in which class the static had been defined if you
> want to reference it!

What version of php are you using? It appears to work with RC1 to
CVS version. The actual result I get is:

public function Debug() {

  echo self::$myInstance;   // works
  echo parent::$myInstance; // error: Cannot access protected property
  echo A::$myInstance;      // error: Cannot access protected property
}

Its expected for the errors on the last two since you're accessing
the protected variable from outsite the public scope of Debug().


Curt
-- 
"I used to think I was indecisive, but now I'm not so sure."

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

Reply via email to