NYCPHP Meetup

[nycphp-talk] Static variables, self:: and abstract classes

John Joseph Bachir jjb at ibiblio.org
Tue Jun 6 12:38:26 EDT 2006


i feel your pain...

   http://blog.johnjosephbachir.org/187


On Tue, 6 Jun 2006, Jeff Knight wrote:

> I feel your pain....
>
> On 6/6/06, Andrew Kamm <akamm at demicooper.com> wrote:
>>
>> Hello all -- I've coded a set of classes that inherit from an abstract
>> class. To my dismay, I've realized after charting and coding everything out
>> that my class hierarchy may be of no use because of how PHP handles
>> inheritance of variables/methods when extending a class.
>>
>> In short, when a method is declared in the parent class and uses
>> "self::$whatever", when calling the method from a child class the "whatever"
>> portion always references the parent value of "whatever."
>>
>> I've come to grips with this being just the way it is, but does anyone have
>> a solution that will prevent me from cutting and pasting all the methods
>> from my parent class into the child class (effectively killing the point of
>> the inheritance)?
>>
>> In addition, is there any logical reason for the language to operate this
>> way? I found it reported as a bug on the PHP site, but I believe the final
>> result/response was that it's not a bug, but intentional. I don't know Java
>> or C, so I have no frame of reference, but it seems kind of weird to me.
>>
>>
>> Example:
>>
>> *****************************************
>> abstract class ParentClass {
>>     protected static $myVar = "parent var!";
>>     function printVar() {
>>         echo self::$myVar;
>>     }
>> }
>>
>>
>> class ChildClass extends ParentClass {
>>     protected static $myVar = "child var!";
>> }
>>
>>
>> ChildClass::printVar();  //displays "parent var!"
>> *****************************************
>>
>>
>> thanks in advance!
>>
>>
>> --
>> Andrew Kamm
>>
>>
>>
>> _______________________________________________
>> New York PHP Community Talk Mailing List
>> http://lists.nyphp.org/mailman/listinfo/talk
>> New York PHP Conference and Expo 2006
>> http://www.nyphpcon.com
>> Show Your Participation in New York PHP
>> http://www.nyphp.org/show_participation.php
>>
> _______________________________________________
> New York PHP Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
> New York PHP Conference and Expo 2006
> http://www.nyphpcon.com
> Show Your Participation in New York PHP
> http://www.nyphp.org/show_participation.php
>



More information about the talk mailing list