Re: Storing objects in sessions recursively

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

 



Stut wrote:
> Dave M G wrote:
>> The issue turned out to be my Article class took arguments in its
>> constructor, which was unacceptable because the argument could not be
>> serialized when being passed along during the session.
>>
>> By adjusting my object so that the constructor takes no arguments, and
>> then creating a new method on the object to do what the constructor
>> did previously, the problem was solved.
>>
>> That explanation may be confusing, but that's because I don't fully
>> understand serialization myself yet. All I can say for sure is that
>> the problem was definitely a serialization issue.
> 
> When objects are unserialised the constructor will be called without
> arguments because the values passed to the constructor are not

heh Stut,

this is wrong - the ctor is not called at all when unserializing, check this
code snippet:

php -r '
class Test { function __construct() { echo "foo\n"; } }
$t = new Test;
$s = serialize($t);
unset($t);
$u = unserialize($s);
'

this only outputs 'foo' once.

seems like whatever Dave's problem was it's actually down to
missing ctor args.

> automatically stored in the object. You can get around that without
> having to create a second initialisation method by using default values
> for your arguments...
> 
> class Foo
> {
>    public __construct($param = null)
>    {
>        if (!is_null($param))
>        {
>            // Parameter passed, do something with it
>        }
>    }
> }
> 
> -Stut
> 

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