{"id":2347,"date":"2021-07-23T10:46:20","date_gmt":"2021-07-23T10:46:20","guid":{"rendered":"https:\/\/phptutorial.net\/?page_id=2347"},"modified":"2021-07-23T10:47:06","modified_gmt":"2021-07-23T10:47:06","slug":"php-unserialize","status":"publish","type":"page","link":"https:\/\/www.phptutorial.net\/php-oop\/php-unserialize\/","title":{"rendered":"PHP unserialize"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you&#8217;ll learn how to use the PHP <code>unserialize()<\/code> function to convert a serialized string into an object.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='introduction-to-the-php-unserialize-function'>Introduction to the PHP unserialize() function <a href=\"#introduction-to-the-php-unserialize-function\" class=\"anchor\" id=\"introduction-to-the-php-unserialize-function\" title=\"Anchor for Introduction to the PHP unserialize() function\">#<\/a><\/h2>\n\n\n\n<p>The <code>unserialize()<\/code> function converts a <a href=\"https:\/\/phptutorial.net\/php-oop\/php-serialize\/\">serialized string<\/a> into an <a href=\"https:\/\/phptutorial.net\/php-oop\/php-objects\/\">object<\/a>. Here&#8217;s the syntax of the <code>unserialized()<\/code> function:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">unserialize(string $data, <span class=\"hljs-keyword\">array<\/span> $options = &#91;]): mixed<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>unserialized()<\/code> function accepts two parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>$data<\/code> is the serialized string.<\/li><li><code>$options<\/code> is an <a href=\"https:\/\/phptutorial.net\/php-tutorial\/php-associative-arrays\/\">associative array <\/a>that contains the options for converting the serialized string into the object.<\/li><\/ul>\n\n\n\n<p>If the <code>unserialize()<\/code> function cannot convert the serialized string <code>($data<\/code>) into an object, it returns <code>false<\/code> with an <code>E_NOTICE<\/code>.<\/p>\n\n\n\n<p>Notice that the <code>unserialize()<\/code> function also returns <code>false<\/code> if the unserialized string is serialized from the <code>false<\/code> value.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='php-unserialize-function-example'>PHP unserialize() function example <a href=\"#php-unserialize-function-example\" class=\"anchor\" id=\"php-unserialize-function-example\" title=\"Anchor for PHP unserialize() function example\">#<\/a><\/h2>\n\n\n\n<p>First, define a <code>Customer<\/code> class that has three properties <code>id<\/code>, <code>name<\/code>, and <code>email<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">Customer<\/span>\n<\/span>{\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__construct<\/span><span class=\"hljs-params\">(\n        private int $id,\n        private string $name,\n        private string $email\n    )<\/span> <\/span>{\n    }\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">getInitial<\/span><span class=\"hljs-params\">()<\/span>\n    <\/span>{\n        <span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-keyword\">$this<\/span>-&gt;name !== <span class=\"hljs-string\">''<\/span>) {\n            <span class=\"hljs-keyword\">return<\/span> strtoupper(substr(<span class=\"hljs-keyword\">$this<\/span>-&gt;name, <span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">1<\/span>));\n        }\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, use the <code>serialize()<\/code> function to serialize a <code>Customer<\/code> object into a string and save it into the <code>customer.dat<\/code> file:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n<span class=\"hljs-keyword\">require<\/span> <span class=\"hljs-string\">'Customer.php'<\/span>;\n\n$customer = <span class=\"hljs-keyword\">new<\/span> Customer(<span class=\"hljs-number\">10<\/span>, <span class=\"hljs-string\">'John Doe'<\/span>, <span class=\"hljs-string\">'john.doe@example.com'<\/span>);\n$str = serialize($customer);\n\nfile_put_contents(<span class=\"hljs-string\">'customer.dat'<\/span>, $str);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Third, use the <code>unserialize()<\/code> function to convert the serialized string into a <code>Customer<\/code> object.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n<span class=\"hljs-keyword\">require<\/span> <span class=\"hljs-string\">'Customer.php'<\/span>;\n\n$str = file_get_contents(<span class=\"hljs-string\">'customer.dat'<\/span>);\n$customer = unserialize($str);\n\nvar_dump($customer);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">object(Customer)<span class=\"hljs-comment\">#1 (3) {<\/span>\n    &#91;<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"Customer\"<\/span>:<span class=\"hljs-keyword\">private<\/span>]=&gt; int(<span class=\"hljs-number\">10<\/span>)\n    &#91;<span class=\"hljs-string\">\"name\"<\/span>:<span class=\"hljs-string\">\"Customer\"<\/span>:<span class=\"hljs-keyword\">private<\/span>]=&gt; string(<span class=\"hljs-number\">8<\/span>) <span class=\"hljs-string\">\"John Doe\"<\/span>\n    &#91;<span class=\"hljs-string\">\"email\"<\/span>:<span class=\"hljs-string\">\"Customer\"<\/span>:<span class=\"hljs-keyword\">private<\/span>]=&gt; string(<span class=\"hljs-number\">20<\/span>) <span class=\"hljs-string\">\"john.doe@example.com\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When unserializing an object, if the class of the object is not known, the <code>unserialize()<\/code> function will create an object of the <code>__PHP_Incomplete_Class<\/code> class instead.<\/p>\n\n\n\n<p>For example, if you remove the <code>require<\/code> construct in the above example as follows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n$str = file_get_contents(<span class=\"hljs-string\">'customer.txt'<\/span>);\n$customer = unserialize($str);\n\nvar_dump($customer);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You&#8217;ll get an object of the <code>PHP_Incomplete_Class<\/code> class. The output will look like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">object(**PHP_Incomplete_Class)<span class=\"hljs-comment\">#1 (4) {<\/span>\n    &#91;<span class=\"hljs-string\">\"**PHP_Incomplete_Class_Name\"<\/span>]=&gt; string(<span class=\"hljs-number\">8<\/span>) <span class=\"hljs-string\">\"Customer\"<\/span>\n    &#91;<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"Customer\"<\/span>:<span class=\"hljs-keyword\">private<\/span>]=&gt; int(<span class=\"hljs-number\">10<\/span>)\n    &#91;<span class=\"hljs-string\">\"name\"<\/span>:<span class=\"hljs-string\">\"Customer\"<\/span>:<span class=\"hljs-keyword\">private<\/span>]=&gt; string(<span class=\"hljs-number\">8<\/span>) <span class=\"hljs-string\">\"John Doe\"<\/span>\n    &#91;<span class=\"hljs-string\">\"email\"<\/span>:<span class=\"hljs-string\">\"Customer\"<\/span>:<span class=\"hljs-keyword\">private<\/span>]=&gt; string(<span class=\"hljs-number\">20<\/span>) <span class=\"hljs-string\">\"john.doe@example.com\"<\/span>\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>unserialize()<\/code> function creates a completely new object that does not reference the original object. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n<span class=\"hljs-keyword\">require<\/span> <span class=\"hljs-string\">'Customer.php'<\/span>;\n\n<span class=\"hljs-comment\">\/\/ serialize the customer object<\/span>\n$customer1 = <span class=\"hljs-keyword\">new<\/span> Customer(<span class=\"hljs-number\">10<\/span>, <span class=\"hljs-string\">'John Doe'<\/span>, <span class=\"hljs-string\">'john.doe@example.com'<\/span>);\n$str = serialize($customer1);\nfile_put_contents(<span class=\"hljs-string\">'customer.txt'<\/span>, $str);\n\n<span class=\"hljs-comment\">\/\/ unserialize it<\/span>\n$str = file_get_contents(<span class=\"hljs-string\">'customer.txt'<\/span>);\n$customer2 = unserialize($str);\n\n<span class=\"hljs-comment\">\/\/ these object are not the same<\/span>\nvar_dump($customer1 === $customer2); <span class=\"hljs-comment\">\/\/ false<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id='the-__unserialize-magic-method'>The __unserialize() magic method <a href=\"#the-__unserialize-magic-method\" class=\"anchor\" id=\"the-__unserialize-magic-method\" title=\"Anchor for The __unserialize() magic method\">#<\/a><\/h2>\n\n\n\n<p>The <code>unserialize()<\/code> function checks if the object has the <code>__unserialize()<\/code> method. If so, it&#8217;ll call the <code>__unserialize()<\/code> method to restore the object&#8217;s state. Consider the following example.<\/p>\n\n\n\n<p>First, define a <code>FileReader<\/code> class:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">FileReader<\/span>\n<\/span>{\n\n\n    <span class=\"hljs-keyword\">private<\/span> $filehandle;\n\n    <span class=\"hljs-keyword\">private<\/span> $filename;\n\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__construct<\/span><span class=\"hljs-params\">(string $filename)<\/span>\n    <\/span>{\n        <span class=\"hljs-keyword\">$this<\/span>-&gt;filename = $filename;\n        <span class=\"hljs-keyword\">$this<\/span>-&gt;open();\n    }\n\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">open<\/span><span class=\"hljs-params\">()<\/span>\n\n    <\/span>{\n        <span class=\"hljs-keyword\">$this<\/span>-&gt;filehandle = fopen(<span class=\"hljs-keyword\">$this<\/span>-&gt;filename, <span class=\"hljs-string\">'r'<\/span>);\n\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">$this<\/span>;\n    }\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">read<\/span><span class=\"hljs-params\">()<\/span>\n    <\/span>{\n        $contents = fread(<span class=\"hljs-keyword\">$this<\/span>-&gt;filehandle, filesize(<span class=\"hljs-keyword\">$this<\/span>-&gt;filename));\n\n        <span class=\"hljs-keyword\">return<\/span> nl2br($contents);\n    }\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">close<\/span><span class=\"hljs-params\">()<\/span>\n    <\/span>{\n        <span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-keyword\">$this<\/span>-&gt;filehandle) {\n            fclose(<span class=\"hljs-keyword\">$this<\/span>-&gt;filehandle);\n        }\n    }\n\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__sleep<\/span><span class=\"hljs-params\">()<\/span>: <span class=\"hljs-title\">array<\/span>\n    <\/span>{\n        <span class=\"hljs-keyword\">$this<\/span>-&gt;close();\n\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">array<\/span>(<span class=\"hljs-string\">'filename'<\/span>);\n    }\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">__unserialize<\/span><span class=\"hljs-params\">()<\/span>: <span class=\"hljs-title\">void<\/span>\n    <\/span>{\n        <span class=\"hljs-keyword\">$this<\/span>-&gt;open();\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In the <code>FileReader<\/code> class, the <code>__unserialize()<\/code> method re-opens the file once the <code>FileReader<\/code> object is unserialized.<\/p>\n\n\n\n<p>Second, serialize a <code>FileReader<\/code> object, save it into the <code>objects.dat<\/code> file, and unserialize it:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-meta\">&lt;?php<\/span>\n\n\n<span class=\"hljs-keyword\">require<\/span> <span class=\"hljs-string\">'FileReader.php'<\/span>;\n\n$filename = <span class=\"hljs-string\">'objects.dat'<\/span>;\n\n\n<span class=\"hljs-comment\">\/\/ serialize the $fileReader<\/span>\nfile_put_contents(\n    $filename,\n    serialize(<span class=\"hljs-keyword\">new<\/span> FileReader(<span class=\"hljs-string\">'readme.txt'<\/span>))\n);\n\n<span class=\"hljs-comment\">\/\/ unserialized the file reader<\/span>\n$file_reader = unserialize(file_get_contents($filename));\n\n<span class=\"hljs-keyword\">echo<\/span> $file_reader-&gt;read();\n\n$file_reader-&gt;close();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id='the-__wakeup-magic-method'>The __wakeup() magic method <a href=\"#the-__wakeup-magic-method\" class=\"anchor\" id=\"the-__wakeup-magic-method\" title=\"Anchor for The __wakeup() magic method\">#<\/a><\/h2>\n\n\n\n<p>Similar to the <code>__unserialize()<\/code> method, the <code>unserialize()<\/code> function also checks for the existence of the <code>__wakeup()<\/code> method of the unserialized object.<\/p>\n\n\n\n<p>If present, <code>the unserialize()<\/code> function will call the <code>__wakeup()<\/code> method to reconstruct the state that the object may have.<\/p>\n\n\n\n<p>In practice, you can perform reinitialization tasks in the <code>__wakeup()<\/code> method, such as reopening the file or re-connecting to the database.<\/p>\n\n\n\n<p>If an object has both <code>__unserialize()<\/code> and <code>__wakup()<\/code> methods, the <code>unserialize()<\/code> will call <code>__unserialize()<\/code> method only and ignore the <code>__wakup()<\/code> method.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id='summary'>Summary <a href=\"#summary\" class=\"anchor\" id=\"summary\" title=\"Anchor for Summary\">#<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Use the <code>unserialize()<\/code> method to convert a serialized string into an object.<\/li><li>The <code>unserialize()<\/code> method calls the <code>__unserialize()<\/code> or <code>__wakeup()<\/code> method of the object to perform re-initialization tasks.<\/li><li>The <code>unserialize()<\/code> method calls the <code>__unserialize()<\/code> method only if an object has both <code>__unserialize()<\/code> and <code>__wakeup()<\/code> methods.<\/li><\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Did you find this tutorial useful?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"2347\"\n\t\t\t\tdata-post-url=\"https:\/\/www.phptutorial.net\/php-oop\/php-unserialize\/\"\n\t\t\t\tdata-post-title=\"PHP unserialize\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"2347\"\n\t\t\t\tdata-post-url=\"https:\/\/www.phptutorial.net\/php-oop\/php-unserialize\/\"\n\t\t\t\tdata-post-title=\"PHP unserialize\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you&#8217;ll learn how to use the PHP unserialize() function to convert a serialized string into an object.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1753,"menu_order":24,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2347","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/2347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/comments?post=2347"}],"version-history":[{"count":1,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/2347\/revisions"}],"predecessor-version":[{"id":2348,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/2347\/revisions\/2348"}],"up":[{"embeddable":true,"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/pages\/1753"}],"wp:attachment":[{"href":"https:\/\/www.phptutorial.net\/wp-json\/wp\/v2\/media?parent=2347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}