Jump to content

Recommended Posts

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 1

What 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?
Link to comment
https://forums.phpfreaks.com/topic/11772-extended-classes/
Share on other sites

[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]
Link to comment
https://forums.phpfreaks.com/topic/11772-extended-classes/#findComment-44570
Share on other sites

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 with

mainclassname::$testvar

or

parent::$testvar;

$this->$var refers to the var in the current instance.
Link to comment
https://forums.phpfreaks.com/topic/11772-extended-classes/#findComment-44611
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.