mahdoum2 Posted June 12, 2006 Share Posted June 12, 2006 I have a main class and other sub classes that are extensions of the main class. I want to have a variable in the main class that can be affected by the sub classes... I'll try to explain better.$main = new MAIN; // main class$sub = new SUB;// sub class 1 extension of main$sub2 = new SUB2; //sub class 2 extension of main$sub->testvar++;echo $sub->testvar; //test var is located in the main class// will output 1$sub2->testvar++;echo $sub2>testvar; //wil output 1What I want the program to do is realise that testvar has been changed by sub and i want sub2 to output 2 and not 1.I'm not sure how to implement this into classes, I realise that sub and sub2 both have same structure of main but completly different memory addresses.So how can I fix this? Quote Link to comment https://forums.phpfreaks.com/topic/11772-extended-classes/ Share on other sites More sharing options...
Barand Posted June 12, 2006 Share Posted June 12, 2006 [code]class my_main { static $testvar; }class my_sub extends my_main { function test() { echo ++my_main::$testvar, '<br>'; }}$a = new my_sub;$b = new my_sub;$a->test();$b->test();[/code] Quote Link to comment https://forums.phpfreaks.com/topic/11772-extended-classes/#findComment-44570 Share on other sites More sharing options...
mahdoum2 Posted June 12, 2006 Author Share Posted June 12, 2006 Ok thanksI tried that earlier but it didn't seem to work... does putting protected or private before the static affect it?whats the difference between using classname::objectand $this-> object? Thats where I went wrong Quote Link to comment https://forums.phpfreaks.com/topic/11772-extended-classes/#findComment-44572 Share on other sites More sharing options...
Barand Posted June 12, 2006 Share Posted June 12, 2006 Private will throw an error but protected will work.In subclass you need to refer to the main class's class variable so refer to it withmainclassname::$testvarorparent::$testvar;$this->$var refers to the var in the current instance. Quote Link to comment https://forums.phpfreaks.com/topic/11772-extended-classes/#findComment-44611 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.