Re: Static variable in a class method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nathan Nobbe schreef:
On Feb 13, 2008 8:44 PM, Nirmalya Lahiri <nirmalyalahiri@xxxxxxxxx> wrote:

--- Pauau <wakamonka747@xxxxxxxxxxx> 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.

actually it pretty much *is* the same - the static class member will exhibit the
same behaviour, only the scope is different.

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.

behaviour is indentical to usage inside standalone functions.


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


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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux