The maybe_unserialize() WordPress PHP function unserializes data only if it was serialized.
Usage
$result = maybe_unserialize($data);
Input:
$data = 'a:2:{i:0;s:4:"red";i:1;s:5:"green";}';
Output:
Array
(
    [0] => red
    [1] => green
)
Parameters
- $data(string) – Required. Data that might be unserialized.
More information
See WordPress Developer Resources: maybe_unserialize
Examples
Unserialize an Array
This example shows how to unserialize a serialized array.
$serialized_data = 'a:3:{i:0;s:5:"apple";i:1;s:6:"banana";i:2;s:5:"grape";}';
$unserialized_data = maybe_unserialize($serialized_data);
print_r($unserialized_data);
Unserialize an Object
This example shows how to unserialize a serialized object.
class Fruit {
    public $name;
    public $color;
}
$fruit = new Fruit();
$fruit->name = 'Apple';
$fruit->color = 'Red';
$serialized_data = serialize($fruit);
$unserialized_data = maybe_unserialize($serialized_data);
print_r($unserialized_data);
Unserialize a String
This example shows how to unserialize a serialized string.
$serialized_data = 's:12:"Hello, World";'; $unserialized_data = maybe_unserialize($serialized_data); echo $unserialized_data;
Attempt to Unserialize Non-serialized Data
This example shows that the function returns the original data if it was not serialized.
$data = 'Not Serialized Data'; $result = maybe_unserialize($data); echo $result;
Unserialize a Nested Serialized Data
This example shows how to unserialize a nested serialized data.
$serialized_data = 'a:2:{i:0;s:3:"dog";i:1;s:59:"a:3:{i:0;s:3:"cat";i:1;s:4:"bird";i:2;s:4:"fish";}";}';
$unserialized_data = maybe_unserialize($serialized_data);
$unserialized_data[1] = maybe_unserialize($unserialized_data[1]);
print_r($unserialized_data);