Re: [PHP] PHP5 and static attributes

2004-05-12 Thread Curt Zirzow
* 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



[PHP] PHP5 and static attributes

2004-05-12 Thread Rudy Metzger
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!

Thanx for reading and if someone knows how to solve this, please let me
know!

Cheerio
/rudy

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