Serialization
Serializing
an object means converting it to a
bytestream representation that can be stored in a file. This is
useful for persistent data; for example, PHP sessions automatically
save and restore objects. Serialization in PHP is mostly
automatic—it requires little extra work from you, beyond
calling the serialize( )
and unserialize( )
functions:
$encoded = serialize(something
); $something = unserialize(encoded
);
Serialization is most commonly used with PHP’s
sessions, which handle the serialization for you. All you need to do
is tell PHP which variables to keep track of, and
they’re automatically preserved between visits to
pages on your site. However, sessions are not the only use of
serialization—if you want to implement your own form of
persistent objects, the serialize( )
and
unserialize( )
functions are a natural choice.
An object’s class must be defined before
unserialization can occur. Attempting to unserialize an object whose
class is not yet defined puts the object into
stdClass
, which renders it almost useless. One
practical consequence of this is that if you use PHP sessions to
automatically serialize and unserialize objects, you must include the
file containing the object’s class definition in
every page on your site. For example, your pages might start like
this:
<?php include('object_definitions.inc'); // load object definitions session_start( ); // load persistent variables ?> <html>...
PHP has two hooks for objects during the serialization and unserialization ...
Get Programming PHP now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.