mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-18 05:26:57 +08:00
67 lines
6.2 KiB
HTML
67 lines
6.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||
<title>产生一个可存储的值的表示</title>
|
||
</head>
|
||
<body class="docs"><div id="layout">
|
||
<div id="layout-content"><div id="function.serialize" class="refentry">
|
||
<div class="refnamediv">
|
||
<h1 class="refname">serialize</h1>
|
||
<p class="verinfo">(PHP 4, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">serialize</span> — <span class="dc-title">
|
||
产生一个可存储的值的表示
|
||
</span></p>
|
||
|
||
</div>
|
||
<div class="refsect1 unknown-seealsp" id="refsect1-function.serialize-unknown-seealsp">
|
||
<h3 class="title">描述</h3>
|
||
<div class="methodsynopsis dc-description">
|
||
<span class="methodname"><strong>serialize</strong></span>
|
||
( <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>
|
||
) : <span class="type">string</span></div>
|
||
|
||
<p class="simpara">
|
||
<span class="function"><strong>serialize()</strong></span> 返回字符串,此字符串包含了表示
|
||
<code class="parameter">value</code> 的字节流,可以存储于任何地方。
|
||
</p>
|
||
<p class="simpara">
|
||
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
|
||
</p>
|
||
<p class="simpara">
|
||
想要将已序列化的字符串变回 PHP 的值,可使用
|
||
<span class="function"><a href="unserialize.html" class="function">unserialize()</a></span>。<span class="function"><strong>serialize()</strong></span>
|
||
可处理除了 <span class="type"><a href="language.types.resource.html" class="type resource">resource</a></span>
|
||
之外的任何类型。甚至可以 <span class="function"><strong>serialize()</strong></span> 那些包含了指向其自身引用的数组。你正
|
||
<span class="function"><strong>serialize()</strong></span> 的数组/对象中的引用也将被存储。
|
||
</p>
|
||
<p class="simpara">
|
||
当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数
|
||
<span class="function"><strong>__sleep()</strong></span>。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用
|
||
<span class="function"><a href="unserialize.html" class="function">unserialize()</a></span> 恢复对象时, 将调用
|
||
<span class="function"><strong>__wakeup()</strong></span> 成员函数。
|
||
</p>
|
||
|
||
<blockquote class="note"><p><strong class="note">Note</strong>:
|
||
<p class="para">
|
||
在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4
|
||
打破了此限制,可以同时存储属性和方法。请参见<a href="language.oop5.html" class="link">类与对象</a>中的<a href="language.oop5.serialization.html" class="link">序列化对象</a>部分获取更多信息。
|
||
</p>
|
||
</p></blockquote>
|
||
<p class="para">
|
||
<div class="example" id="example-6369">
|
||
<p><strong>Example #1 <span class="function"><strong>serialize()</strong></span> 示例</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// $session_data 是包含了当前用户 session 信息的多维数组。<br />// 我们使用 serialize() 在请求结束之前将其存储到数据库中。<br /><br /></span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">odbc_connect </span><span style="color: #007700">(</span><span style="color: #DD0000">"webdb"</span><span style="color: #007700">, </span><span style="color: #DD0000">"php"</span><span style="color: #007700">, </span><span style="color: #DD0000">"chicken"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">odbc_prepare </span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">"UPDATE sessions SET data = ? WHERE id = ?"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$sqldata </span><span style="color: #007700">= array (</span><span style="color: #0000BB">serialize</span><span style="color: #007700">(</span><span style="color: #0000BB">$session_data</span><span style="color: #007700">), </span><span style="color: #0000BB">$PHP_AUTH_USER</span><span style="color: #007700">);<br />if (!</span><span style="color: #0000BB">odbc_execute </span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, &</span><span style="color: #0000BB">$sqldata</span><span style="color: #007700">)) {<br /> </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">odbc_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">"INSERT INTO sessions (id, data) VALUES(?, ?)"</span><span style="color: #007700">);<br /> if (!</span><span style="color: #0000BB">odbc_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, &</span><span style="color: #0000BB">$sqldata</span><span style="color: #007700">)) {<br /> </span><span style="color: #FF8000">/* 出错 */<br /> </span><span style="color: #007700">}<br />}<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
参见:<span class="function"><a href="unserialize.html" class="function">unserialize()</a></span>。
|
||
</p>
|
||
</div>
|
||
|
||
</div></div></div></body></html> |