Re: Static variable in a class method

From: Date: Thu, 14 Feb 2008 02:16:53 +0000
Subject: Re: Static variable in a class method
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-269273@lists.php.net to get a copy of this message
On Feb 13, 2008 8:44 PM, Nirmalya Lahiri <nirmalyalahiri@yahoo.com> wrote: > --- Pauau <wakamonka747@hotmail.com> wrote: > > > I have a class method which declares a static variable > > within.However, > > across all the instances of the class, the current value on that > > variable > > replicates. Is it the intended functionality? Example: class A { > > public > > function foo() { static $i=0; $i++; }}$obj1 = new > > A();$obj1->foo(); //$i = 1 $obj2 = new A();$obj2->foo(); //$i = 2 > > where I > > think it should be 1, becaue it's a new instance. > > > > Pauau, > Please visit the link below for help.. > http://www.php.net/manual/en/language.oop5.static.php what you are using is potentially not what you think it is. you are using a 'static variable' which is not a static class member. you can find the doc on static variables here, http://www.php.net/manual/en/language.variables.scope.php im not sure if their behavior is well defined when they are used in classes, or objects. as Nirmalya, has alluded, you should check out the docs on static class members. im sure that you can achieve whatever you need to by using some combination of static class members and instance variables. -nathan

« previous php.general (#269273) next »