Re: Strange behaviour of static declared content.

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

 



Stut wrote:
> Stut wrote:
>> In that case you need a new foo. That's the only way you're going to
>> reset the internal static if the API doesn't give you a way to do it.
>>
>> $f=new foo();
>> $f->bar();
>> $f->bar();
>> $g=new foo();
>> $g->bar();
> 
> Actually, scratch that, won't work. Not even unsetting $f before
> creating the new object works. This kinda sucks since it means PHP does
> not support static function-scoped vars.

Yeah I tried that same thing too and then wondered if I had
misinterpreted how function-scoped statics worked.

I've often used a method like:

function Init()
{
 static $bln_inited = false;
 if (!$bln_inited)
 {
  // Do stuff
  $bln_inited = true;
 }
}


I had always assumed that the static definition here was
function-scoped... I guess I should have tested more but still it caught
me off guard this morning when I played with it.

Correct me if I'm wrong but does C++ not do it as both of us initially
thought? e.g. static is function scoped rather than globally scoped when
used within a class method?

Col

-- 
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