1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00
Files
archived-doc-es/reference/igbinary/functions/igbinary-unserialize.xml

149 lines
5.8 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-unserialize">
<refnamediv>
<refname>igbinary_unserialize</refname>
<refpurpose>
Crea una variable PHP a partir de un valor serializado por <function>igbinary_serialize</function>
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>igbinary_unserialize</methodname>
<methodparam><type>string</type><parameter>str</parameter></methodparam>
</methodsynopsis>
<simpara>
<function>igbinary_unserialize</function> toma una variable serializada por
<function>igbinary_serialize</function> y la convierte en una variable PHP.
</simpara>
<warning>
<simpara>
Las entradas de usuario no confiables no deben pasarse a la función
<function>igbinary_unserialize</function>.
La deserialización puede resultar en la ejecución de código cargado y ejecutado durante la instanciación
y el autochargado de objetos, y así, un usuario malintencionado puede ser capaz de explotar
este comportamiento.
En su lugar, un estándar de intercambio seguro como JSON (a través de <function>json_decode</function> y
<function>json_encode</function>) debe usarse para pasar datos serializados al usuario.
</simpara>
<simpara>
Si es indispensable deserializar datos serializados provenientes del exterior, la función
<function>hash_hmac</function> puede usarse para validar los datos.
Es importante verificar que nadie haya alterado los datos.
</simpara>
</warning>
<warning>
<simpara>
El protocolo de serialización por igbinary no permite distinguir entre los diferentes grupos de
referencias. Todas las referencias PHP a un valor dado son vistas como miembros de un mismo
grupo durante la deserialización, incluso si pertenecían a grupos diferentes antes de la
serialización.
</simpara>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>str</parameter></term>
<listitem>
<simpara>
La cadena serializada, generada por <function>igbinary_serialize</function>.
</simpara>
<simpara>
Si la variable deserializada es un &object;, después de reconstruirla con éxito,
PHP intentará automáticamente llamar a los métodos mágicos
<link linkend="object.unserialize">__unserialize()</link> o
<link linkend="object.wakeup">__wakeup()</link> (si alguno de ellos existe).
</simpara>
<note>
<title>
La directiva <link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>
</title>
<simpara>
La función de retrollamada especificada en la directiva
<link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>
es llamada cuando una clase no definida es deserializada.
Si ninguna función de retrollamada es especificada, el objeto será instanciado
como <classname>__PHP_Incomplete_Class</classname>.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
El valor convertido es retornado por la función, y puede ser de tipo <type>&boolean;</type>,
<type>&integer;</type>, <type>&float;</type>, <type>&string;</type>,
<type>&array;</type>, <type>&object;</type>, o de tipo <type>null</type>.
</simpara>
<simpara>
Si la cadena pasada no puede ser deserializada, esta función retorna &false; y
un diagnóstico <constant>E_NOTICE</constant> o <constant>E_WARNING</constant> es emitido.
</simpara>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<simpara>
Los objetos pueden lanzar un <classname>Throwable</classname> en su gestor de deserialización.
</simpara>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<simpara>
&null; o &false; es retornado ya sea en caso de error o después de deserializar
el resultado de la serialización de &null; o &false;. Es posible discriminar entre estos dos casos
especiales comparando el valor del parámetro <parameter>str</parameter> con el resultado de la ejecución
de <code>igbinary_serialize(null)</code> o de <code>igbinary_serialize(false)</code>
o bien atrapando un diagnóstico <constant>E_NOTICE</constant>.
</simpara>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>unserialize</function></member>
<member><function>json_encode</function></member>
<member><function>json_decode</function></member>
<member><function>hash_hmac</function></member>
<member><function>igbinary_serialize</function></member>
<member><link linkend="language.oop5.autoload">Autocargado de clases</link></member>
<member><link linkend="ini.unserialize-callback-func">unserialize_callback_func</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
-->