mirror of
https://github.com/php/doc-es.git
synced 2026-03-24 15:32:36 +01:00
155 lines
5.9 KiB
XML
155 lines
5.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 43dd38b94fbf8a9e3efc9c5bfde27c14b9e2ce9c Maintainer: PhilDaiguille Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="function.igbinary-serialize">
|
|
<refnamediv>
|
|
<refname>igbinary_serialize</refname>
|
|
<refpurpose>Genera una representación binaria almacenable y compacta de un valor</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type class="union"><type>string</type><type>false</type></type><methodname>igbinary_serialize</methodname>
|
|
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<simpara>
|
|
Genera una representación almacenable de un valor.
|
|
</simpara>
|
|
<simpara>
|
|
Es una técnica práctica para almacenar o pasar valores PHP entre scripts, sin perder su estructura ni su tipo.
|
|
</simpara>
|
|
<simpara>
|
|
Para reconvertir la cadena sérializada en un valor PHP,
|
|
la función <function>igbinary_unserialize</function> puede ser utilizada.
|
|
</simpara>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>value</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
El valor a serializar. <function>igbinary_serialize</function>
|
|
gestiona todos los tipos excepto los <type>recurso</type>s y ciertos <type>objeto</type>s (confiere la nota a continuación).
|
|
Incluso los &array;x que contienen referencias a sí mismos pueden ser serializados con <function>igbinary_serialize</function>.
|
|
Las referencias circulares dentro de un &array; o de un &object; a serializar serán igualmente almacenadas.
|
|
Cualquier otra referencia será perdida.
|
|
</simpara>
|
|
<simpara>
|
|
Al serializar objetos, igbinary intentará llamar a los métodos mágicos
|
|
<link linkend="object.serialize">__serialize()</link> o
|
|
<link linkend="object.sleep">__sleep()</link> antes de la serialización.
|
|
Esto permitirá al objeto realizar una limpieza de último momento, etc., antes de ser serializado.
|
|
De igual manera, cuando el objeto es restaurado utilizando la función
|
|
<function>igbinary_unserialize</function>, uno de los métodos mágicos <link linkend="object.unserialize">__unserialize()</link>
|
|
o <link linkend="object.wakeup">__wakeup()</link> es llamado.
|
|
</simpara>
|
|
<note>
|
|
<simpara>
|
|
Los atributos privados de un objeto tendrán el nombre de la clase prefijado al nombre del atributo;
|
|
los atributos protegidos serán prefijados con un asterisco <literal>'*'</literal>.
|
|
Estos valores prefijados tienen caracteres nulos en ambos lados.
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<simpara>
|
|
Retorna una cadena de caracteres que contiene una representación del parámetro <parameter>value</parameter>
|
|
en forma de flujo de bytes que puede ser almacenado en cualquier lugar.
|
|
</simpara>
|
|
<simpara>
|
|
Es de notar que es una cadena binaria que puede incluir caracteres nulos, y debe por lo tanto ser almacenada y gestionada como tal.
|
|
Por ejemplo, en una base de datos, la salida de la función <function>igbinary_serialize</function>
|
|
debe, en general, ser almacenada en un campo de tipo <literal>BLOB</literal>
|
|
en lugar de en un campo de tipo <literal>CHAR</literal> o <literal>TEXT</literal>.
|
|
</simpara>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<example>
|
|
<title>Ejemplo con <function>igbinary_serialize</function></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$ser = igbinary_serialize(['test', 'test']);
|
|
echo urlencode($ser), "\n";
|
|
var_export(igbinary_unserialize($ser));
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs;
|
|
<screen>
|
|
<![CDATA[
|
|
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
|
|
array (
|
|
0 => 'test',
|
|
1 => 'test',
|
|
)
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
<note>
|
|
<simpara>
|
|
Es de notar que muchos objetos internos de PHP no pueden ser serializados. Sin embargo, aquellos que pueden
|
|
implementan ya sea la interfaz <interfacename>Serializable</interfacename> o los métodos mágicos
|
|
<link linkend="object.serialize">__serialize()</link>/<link linkend="object.unserialize">__unserialize()</link>
|
|
o <link linkend="object.sleep">__sleep()</link>/<link linkend="object.wakeup">__wakeup()</link>.
|
|
Si una clase interna no cumple ninguna de estas condiciones, no puede ser serializada de manera fiable.
|
|
</simpara>
|
|
<simpara>
|
|
Existen excepciones históricas a esta regla, donde objetos internos pueden ser serializados
|
|
sin implementar ni la interfaz ni los métodos mágicos.
|
|
</simpara>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<simplelist>
|
|
<member><function>serialize</function></member>
|
|
<member><function>igbinary_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>
|
|
<member><link linkend="object.serialize">__serialize()</link></member>
|
|
<member><link linkend="object.unserialize">__unserialize()</link></member>
|
|
</simplelist>
|
|
</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
|
|
-->
|