Questions about "static" and serialization

From: Date: Wed, 26 Oct 2005 11:57:22 +0000
Subject: Questions about "static" and serialization
Groups: php.internals 
Request: Send a blank email to internals+get-19725@lists.php.net to get a copy of this message
Hi internals, I was experimenting with different approaches of maintaining state and serializing objects in PHP5. The problem is handling static class members and static variables inside methods. First, I noted that static variables inside methods are shared between instances. C++ seems to handle it the same way, but admittedly, I was a little bit surprised: Such variables are available as "local" variables in methods that are called using an instance, i. e. non-statically, whereas static class variables can only be accessed using a static reference to a class (self::, parent:: or Classname::). However, this explains why static variables inside functions do not show up when serializing object instances: Because the static variable is - just like a static class variable - not "part of the object", but belongs to the class. So - has anybody ever considered serializing static variables as well? Obviously they have to be treated separately at a per-class level; let alone static variables in functions outside classes ;). Would it be possible to write a session serialize handler that somehow includes such static elements? I presume it should be possible to "somewhere find" the static elements. (Strictly spoken, an object instance's state expresses itself in non-static members of the instance, so the above "static variables in functions" stuff makes sense the way it is - if I want to maintain per-instance state, I shouldn't be using local static variables, but "plain" object members for that. However, when working with the Singleton pattern, you don't come around using static at some level...) Best regards, Matthias

« previous php.internals (#19725) next »