-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathdebug-zval-dump.xml
189 lines (185 loc) · 6.13 KB
/
debug-zval-dump.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2a5223230bf6177c225003ca30c63f48ef266cc0 Maintainer: nilgun Status: ready -->
<refentry xml:id="function.debug-zval-dump" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>debug_zval_dump</refname>
<refpurpose>Dahili zval yapısının dizgesel gösterimini çıktıya dökümler</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>debug_zval_dump</methodname>
<methodparam><type>mixed</type><parameter>değer</parameter></methodparam>
<methodparam rep="repeat"><type>mixed</type><parameter>değerler</parameter></methodparam>
</methodsynopsis>
<para>
Dahili bir zval yapısının (zend değerinin) dizgesel gösterimini çıktıya
dökümler. Zend motorunun veya bir PHP eklentisinin gerçeklenim
ayrıntılarının hatalarını ayıklamak veya anlamak için bu yöntem oldukça
kullanışlıdır.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>değer</parameter></term>
<listitem>
<para>
Dökümlenecek değişken veya değer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>values</parameter></term>
<listitem>
<para>
Dökümlenecek değişkenler veya değerler.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>debug_zval_dump</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$var1 = 'Hello';
$var1 .= ' World';
$var2 = $var1;
debug_zval_dump($var1);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(11) "Hello World" refcount(3)
]]>
</screen>
</example>
</para>
<note>
<title><literal>refcount</literal> hakkında</title>
<para>
Bu işlevden döndürülen <literal>refcount</literal> değeri, motorun
gerçeklenimi ayrıntılı bir şekilde anlaşılmadan şaşırtıcı olabilir.
</para>
<para>
Zend motoru gönderim sayısını (refcount) iki farklı amaç için kullanır:
</para>
<para>
<simplelist>
<member>
Aynı değeri tutan birden çok değişkenin bellekteki aynı kopyayı işaret
ettiği "yazarken kopyala" adı verilen bir teknik kullanarak bellek
kullanımını en iyileme. Değişkenlerden herhangi biri değiştirildiğinde,
bellekte yeni bir kopyaya işaret edilir ve özgün kopya üzerindeki
gönderim sayısı 1 azaltılır.
</member>
<member>
Gönderimle atanmış veya aktarılmış izleme değişkenleri (bkz. <link
linkend="language.references">Gönderimlerle İlgili Herşey </link>).
Bu gönderim sayısı, geçerli değer için zval'i işaret eden ayrı bir
gönderim zval'ı üzerinde saklanır. Bu ek zval şu anda
<function>debug_zval_dump</function> tarafından gösterilmemektedir.
</member>
</simplelist>
</para>
<para>
<function>debug_zval_dump</function> girdisini değeriyle aktarılan normal
bağımsız değişkenler olarak aldığından, bunları aktarmak için "yazarken kopyala"
tekniğini kullanacaktır: verileri kopyalamak yerine, işlev çağrısının ömrü
boyunca gönderim sayısını bir artıracaktır. İşlev, bağımsız değişkeni aldıktan
sonra değiştirseydi, bir kopyası yapılırdı; öyle olmadığından, gösterilen
gönderim sayısı çağrı etki alanındakinden bir fazla olur.
</para>
<para>
Bağımsız değişken aktarımı ayrıca, gönderimle atanan değişkenleri
<function>debug_zval_dump</function> işlevinin göstermesini de önler.
Örneklerle açıklamak gerekirse, yukarıdaki örneğin biraz değiştirilmiş
bir halini ele alalım:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$var1 = 'Hello';
$var1 .= ' World';
// Aynı değere gönderim olarak üç değişkene vurgu yapalım
$var2 =& $var1;
$var3 =& $var1;
debug_zval_dump($var1);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(11) "Hello World" refcount(2)
]]>
</screen>
</informalexample>
</para>
<para>
<varname>$var1</varname>, <varname>$var2</varname> ve
<varname>$var3</varname> gönderim olarak ilintili olsa da,
<function>debug_zval_dump</function> işlevine yalnızca bir
<emphasis>değer</emphasis> aktarılır. Bu değer, bir kez gönderim kümesi
tarafından ve bir kez de <function>debug_zval_dump</function> içinde
kullanılır, bu nedenle gönderim sayısı (refcount) 2 olur.
</para>
<para>
Motorda farklı veri türleri için yapılan en iyilemeler nedeniyle daha
fazla karışıklık ortaya çıkar. Tamsayılar gibi bazı türler "yazarken
kopyala" kullanmazlar, bu nedenle bir refcount gösterilmez. Diğer
durumlarda, refcount dahili olarak kullanılan fazladan kopyaları da
gösterir, örneğin bir sayıl dize veya dizinin bir göstericiyle saklanması
gibi.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>var_dump</function></member>
<member><function>debug_backtrace</function></member>
<member><link linkend="language.references">Gönderimlerle İlgili
Herşey</link></member>
<member><link xlink:href="&url.derick.references;">References Explained (Derick Rethans)</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
-->