How to Use serialize() and unserialize() in PHP

In PHP, there is no possibility of transporting or storing data. For executing a complex set of data continuously, the serialize() and unserialize() functions come in rescue. They are especially handy for dealing with complex data.

Most of the time, developers need to store a complex array inside a file or a database. The complex arrays are those with elements of more than a single data type or array.

In this tutorial, we will show you how to use the serialize() and unserialize() functions to accomplish your goals.

Using the serialize() Function

It is an inbuilt PHP function that is used for serializing a particular array.

It accepts only one parameter that is the data one intends to serialize. The serialize() function is capable of returning a serialized string.

The syntax of the serialize() function is:

serialize( $values_in_form_of_array ): string

Below, you can see an accurate example of using this function:


// Complex array
$myvar = ['hello', 36, [1, 'two'], 'apple'];

// Convert to a string
$string = serialize($myvar);

// Printing the serialized data
echo $string;


The output of the example is as follows:


The unserialize() Function

The unserialize() function is another inbuilt PHP function. It is used for unserializing a particular serialized array to return to the initial value of the complex array $myvar.

The syntax of this function will look as follows:

unserialize(string $data, array $options = []): mixed

Now, let’s see how both serialize() and unserialize() are used in practice:

$myvar = ['hello',  42, [1, 'two'], 'apple'];

// Serialize the above data 
$string = serialize($myvar);

// Unserialize the data in $string 
$newvar = unserialize($string);

// Print the unserialized data 


The output of the example is as follows:

    [0] => hello
    [1] => 42
    [2] => 
            [0] => 1
            [1] => two
    [3] => apple

For more information and usage examples of these functions, you can check out PHP serialize() and PHP unserialize().

There is a powerful symfony Serializer component which extends serialization possibilities.