1
0
mirror of https://github.com/php/doc-tr.git synced 2026-04-26 08:28:07 +02:00
Files
2021-05-25 12:23:28 +03:00

178 lines
6.0 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8cdc6621f9826d04abc3e50438c010804d7e8683 Maintainer: nilgun Status: ready -->
<refentry xml:id="function.serialize" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>serialize</refname>
<refpurpose>Bir değerin saklanabilir bir gösterimini üretir
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>serialize</methodname>
<methodparam><type>mixed</type><parameter>değer</parameter></methodparam>
</methodsynopsis>
<para>
Bir değerin saklanabilir bir gösterimini üretir.
</para>
<para>
PHP değerlerini, yapısını ve türünü kaybetmeden saklamak veya aktarmak için
kullanışlıdır.
</para>
<para>
Böyle bir değerden tekrar özgün değeri elde etmek için
<function>unserialize</function> işlevini kullanın.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>değer</parameter></term>
<listitem>
<para>
Dizgeleştirilecek değer. <function>serialize</function> işlevi,
<type>resource</type> türü ve bazı nesneler hariç her türü
dizgeleştirebilir. Hatta
kendine gönderimli dizileri bile dizgeleştirebilirsiniz.
Dizgeleştirdiğiniz dizi veya nesnelerin içindeki döngüsel gönderimler
bile saklanabilir. Bunlar dışında kalan gönderimler kaybedilir.
</para>
<para>
PHP nesneleri dizgeleştirirken önce <link
linkend="object.sleep">__sleep</link> veya <link
linkend="object.serialize">__serialize()</link> üye işlevlerini
çağırmaya çalışılır. Bu işlem, nesneye dizgeleştirme öncesinde bir takım
temizlikler yapabilmesi imkanını tanır. Benzer şekilde,
<function>unserialize</function> kullanılarak nesne özgün durumuna
getirilirken <link linkend="object.unserialize">__unserialize()</link>
veya <link linkend="object.wakeup">__wakeup()</link> üye işlevleri
çağrılmaya çalışılır.
</para>
<note>
<para>
Nesnenin özel üyelerinin isimlerinin önünde sınıf ismi, protected
üyelerin isimlerinin önünde ise bir '*' bulunur. İsimlerin başına
getirilen bu değerler her iki tarafta null baytlarla ifade edilirler.
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Belirtilen değerin herhangi bir yerde saklanabilecek, akımlar üzerinden
aktarılabilen bir gösterimini döndürür.
</para>
<para>
Bunun ikil bir dizge oluşuna, null baytlar içerebileceğine ve ikil olarak
ele alınabileceğine dikkat ediniz. Örneğin,
<function>serialize</function> çıktısının genelde bir veritabanının bir
CHAR veya TEXT alanında değil bir BLOB alanında saklanması gerekir.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>serialize</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
// $session_data, geçerli kullanıcı için oturum bilgisini
// içeren çok boyutlu bir dizi içerir. İsteğin sonunda bu diziyi bir
// veritabanında saklamak için serialize() işlevini kullanacağız.
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, array_reverse($sqldata))) {
/* Birşeyler yanlış gitmiş.. */
}
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Yerleşik PHP nesenelerinin çoğunun dizgeleştirilemeyeceğine dikkar
ediniz. Bu bakımda ya <interfacename>Serializable</interfacename> arayüzü
veya sihirli <link linkend="object.serialize">__serialize()</link>/<link
linkend="object.unserialize">__unserialize()</link> veya <link
linkend="object.sleep">__sleep()</link>/<link
linkend="object.wakeup">__wakeup()</link> yöntemleri kullanılarak
gerçeklenir. Dahili bir sınıf bu gereksinimleri sağlamıyorsa gerektiği
gibi dizgeleştirilemez.
</para>
<para>
Yukarıdaki kuralın geçmişten gelen bazı istisnaları olup bazı dahili
nesneler arayüz gerçeklemeden veya malum yöntemleri kullanmadan
dizgeleştirilebilir.
</para>
</note>
<warning>
<para>
<function>serialize</function> işlevi nesneleri dizgeleştirirken, azami
uyumluluğu sağlamak için isimalanlı sınıfların sınıf isimlerinin sonuna
tersbölü konmaz.
</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">Nesneleri Dizgeleştirme</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>
</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
-->