mirror of
https://github.com/php/doc-es.git
synced 2026-03-25 16:02:13 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@334647 c90b9560-bf6c-de11-be94-00142212c4b1
169 lines
5.7 KiB
XML
169 lines
5.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 8b5940cadeb4f1c8492f4a7f70743a2be807cf39 Maintainer: argosback Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<refentry xml:id="function.serialize" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>serialize</refname>
|
|
<refpurpose>Genera una representación apta para el almacenamiento de un valor</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>string</type><methodname>serialize</methodname>
|
|
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Genera una representación almacenable de un valor.
|
|
</para>
|
|
<para>
|
|
Esto es útil para el almacenamiento de valores en PHP sin
|
|
perder su tipo y estructura.
|
|
</para>
|
|
<para>
|
|
Para recuperar el valor PHP a partir de la cadena seriada, utilice
|
|
<function>unserialize</function>.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>value</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
El valor a ser serializado. <function>serialize</function>
|
|
maneja todos los tipos, excepto el tipo <type>resource</type>.
|
|
Puede incluso usar <function>serialize</function> sobre arrays que contienen
|
|
referencias a ellos mismos. Las referencias circulares encontradas en el array/objeto
|
|
que procede a serializar también serán almacenadas. Cualquier
|
|
otra referencia se perderá.
|
|
</para>
|
|
<para>
|
|
Cuando se trata de objetos, PHP intentará llamar a la función miembro
|
|
<link linkend="object.sleep">__sleep()</link> antes de la serialización.
|
|
Esto permite que el objeto efectúe limpiezas de último minuto, etc. antes de ser
|
|
serializado. Del mismo modo, cuando el objeto es recuperado usando
|
|
<function>unserialize</function>, la función miembro <link linkend="object.wakeup">__wakeup()</link> es llamada.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Los miembros privados del objeto tienen el nombre de la clase al comienzo de
|
|
su nombre; los miembros protegidos tienen un '*' al comienzo de su nombre.
|
|
estos valores antepuestos tienen bytes nulos a ambos lados.
|
|
</para>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Devuelve una cadena que contiene una representación de flujo de bytes del
|
|
<parameter>value</parameter> que puede ser almacenada en cualquier parte.
|
|
</para>
|
|
<para>
|
|
Observe que esto es una cadena binaria que puede incluir bytes nulos, y necesita
|
|
ser almacenada y manipulada como tal. Por ejemplo,
|
|
la salida de <function>serialize</function> debe ser generalmente almacenada en un campo de tipo BLOB
|
|
en la base de datos, en vez de en campos de tipo CHAR o TEXT.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title>Ejemplo <function>serialize</function></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// $datos_sesion contiene un array multi-dimensional con
|
|
// información del usuario actual. Usamos serialize() para
|
|
// almacenarla en una base de datos al final de la petición.
|
|
|
|
$con = odbc_connect("bd_web", "php", "gallina");
|
|
$sent = odbc_prepare($con,
|
|
"UPDATE sesiones SET datos = ? WHERE id = ?");
|
|
$datos_sql = array (serialize($datos_sesion), $_SERVER['PHP_AUTH_USER']);
|
|
|
|
if (!odbc_execute($sent, &$datos_sql)) {
|
|
$sent = odbc_prepare($con,
|
|
"INSERT INTO sesiones (id, datos) VALUES(?, ?)");
|
|
if (!odbc_execute($sent, &$datos_sql)) {
|
|
/* Algo ha fallado.. */
|
|
}
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
<note>
|
|
<para>
|
|
Tenga en cuenta que muchos objetos integrados de PHP no se pueden serializar. Sin embargo, aquellos con
|
|
esta habilidad o implementan la interfaz <interfacename>Serializable</interfacename> o los métodos mágicos
|
|
<link linkend="object.sleep">__sleep()</link> y <link linkend="object.wakeup">__wakeup()</link>. Si una
|
|
clase interna no cumple cualquiera de esos requisitos, estas seguramente no puedan ser
|
|
serializadas.
|
|
</para>
|
|
<para>
|
|
Hay algunas excepciones históricas a la regla anterior, donde algunos objetos internos
|
|
podrían ser serializados sin implementar la interfaz o la exposición de los métodos. En particular,
|
|
la clase <classname>ArrayObject</classname> anterior a PHP 5.2.0.
|
|
</para>
|
|
</note>
|
|
<warning>
|
|
<para>
|
|
Cuando <function>serialize</function> serializa los objetos, la barra inicial no está incluido en el nombre de clase de las clases de espacios de nombres para una máxima compatibilidad.
|
|
</para>
|
|
</warning>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>unserialize</function></member>
|
|
<member><function>var_export</function></member>
|
|
<member><function>json_encode</function></member>
|
|
<member><link linkend="language.oop5.serialization">Serialización de Objetos</link></member>
|
|
<member><link linkend="object.sleep">__sleep()</link></member>
|
|
<member><link linkend="object.wakeup">__wakeup()</link></member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|