-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathbasic-syntax.xml
277 lines (258 loc) · 9.35 KB
/
basic-syntax.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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6b09bb638aa64d1fad5f4a630a8da9a2692ce733 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>Temel Sözdizimi</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>PHP etiketleri</title>
<para>
PHP bir dosyayı çözümlerken, hangi bölümü yorumlayıp hangi bölümü
yorumlamadan geçeceğine karar vermek için <literal><?php</literal> ve
<literal>?></literal> açılış ve kapanış etiketlerine bakar. Bu şekilde
çözümleme PHP'nin her çeşit farklı belgeye gömülmesini sağlar, çünkü bir
çift açılış ve kapanış etiketinin dışındaki her şey PHP çözümleyicisi
tarafından gözardı edilir.
</para>
<para>
PHP daha açıklayıcı olan <code><?php echo</code> etiketine bir kısaltma olarak
<literal><?=</literal> kısa echo etiketini içerir.
</para>
<para>
<example>
<title>- PHP Açılış ve Kapanış Etiketleri</title>
<programlisting role="php">
<![CDATA[
1. <?php echo 'XHTML veya XML belgelerde PHP kodu sunmak isterseniz,
bu etiketleri kullanın'; ?>
2. Kısa echo etiketi kullanabilirsiniz: <?= 'print this string' ?>.
<?php echo 'print this string' ?> koduna eşdeğerdir.
3. <? echo 'bu kod kısa etiketler arasında olmakla birlikte sadece,'.
'short_open_tag etkinse çalışır.'; ?>
]]>
</programlisting>
</example>
</para>
<para>
PHP ayrıca kısa başlangıç etiketine de <literal><?</literal> izin verir.
Bu sadece, PHP <option>--enable-short-tags</option> yapılandırma seçeneği ile
derlenerek veya &php.ini; yapılandırma dosyası yönergesi <link
linkend="ini.short-open-tag">short_open_tag</link> kullanılarak
etkinleştirilebilir.
</para>
<para>
<note>
<para>
Kısa etiketler iptal edilebileceğinden uyumluluk adına sadece normal etiketlerin
(<code><?php ?></code> ve <code><?= ?></code>) kullanılması önerilir.
</para>
</note>
</para>
<para>
Bir dosya sadece PHP kodu içeriyorsa, dosyanın sonunda PHP kapanış etiketini koymamak
tercih edilir. Yazılımcıdan herhangi bir çıktı gönderme isteği gelmezse PHP
betiğin bu noktasında çıktı tamponlamasını başlatacağından kapama etiketinden
sonra istenmeyen etkilere neden olabilecek boşluk veya yeni satırların
yanlışlıkla eklenmesi böylece engellenmiş olur.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo "Merhaba Dünya";
// ... daha kod
echo "İletişimin sonu";
// PHP kapama etiketi olmadan betik burada biter
]]>
</programlisting>
</informalexample>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.phpmode">
<title>HTML'den Kaçmak</title>
<para>
Başlangıç ve bitiş etiketlerinin dışında kalan her şey PHP çözümleyicisi
tarafından gözardı edilerek PHP dosyalarının karışık içeriğe sahip olabilmesi
sağlanır. Çoğu zaman, bu örnekte olduğu gibi PHP'nin HTML içine gömülmüş
olduğunu göreceksiniz.
<informalexample>
<programlisting role="php">
<![CDATA[
<p>Bu bölüm PHP tarafından gözardı edilecek ve tarayıcıda gösterilecektir.</p>
<?php echo 'Bu bölüm PHP tarafından çözümlenecektir.'; ?>
<p>Bu bölüm de PHP tarafından gözardı edilecek ve tarayıcıda gösterilecektir.</p>
]]>
</programlisting>
</informalexample>
Bu beklendiği gibi çalışır, çünkü PHP çözümleyicisi ?> kapanış etiketine
rastlayınca (hemen ardından bir satırsonu karakteri gelmesi durumu hariç -
bak: <link linkend="language.basic-syntax.instruction-separation">deyim
ayırma</link>) başka bir açılış etiketine rastlayıncaya kadar (etiketin koşullu
bir ifadenin ortasında olması durumu hariç - bu durumda çözümleyici neyin
atlanacağına karar vermek için ifadenin sonucun saptamaya çalışacaktır) herşeyi
çıktılamaya başlar. Aşağıdaki örneğe bakınız:
</para>
<para>
Yapıların koşullu kullanımı
<example>
<title>- Koşul kullanan gelişmiş önceleme</title>
<programlisting role="php">
<![CDATA[
<?php if (ifade == true): ?>
İfade doğruysa bu gösterilir.
<?php else: ?>
İfade doğru değilse bu gösterilir.
<?php endif; ?>
?>
]]>
</programlisting>
</example>
Bu örnekte PHP, açılış/kapanış etiketlerinin dışında olsa bile koşulun
karşılanmadığı blokları atlayacaktır, çünkü PHP yorumlayıcısı koşulun
karşılanmadığı durumda koşulun içinde bulunan blokları atlar.
</para>
<para>
Büyük metin bloklarını görüntülemek istediğimizde PHP'yi çözümleme
kipinden çıkartmak çoğu zaman tüm metni <function>echo</function> ya da
<function>print</function> ile görüntülemekten daha verimlidir.
</para>
<para>
<note>
<para>
PHP'yi XML ya da XHTML içine gömmek istiyorsanız standartlarla uyumlu
kalabilmek için normal PHP <code><?php ?></code> etiketlerini
kullanmalısınız.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
<title>Deyim Ayrımı</title>
<para>
C ya da Perl'de olduğu gibi, PHP de deyimlerin birbirlerinden her bir
deyimin sonuna konulacak noktalı virgülle ayrılmasını gerektirir. Bir PHP
kod bloğunun sonunda yer alan kapanış etiketi kendinden önceki deyim için
noktalı virgül işlevi görür; yani, bir PHP bloğunun son satırının sonuna
noktalı virgül koymak zorunda değilsiniz. Kapanış etiketi aynı zamanda
satırsonu karakterini de kendisi ekleyecektir.
</para>
<para>
<example>
<title>- Sondaki satırsonu karakterini kapsayan kapanış etiketini gösteren örnek</title>
<programlisting role="php">
<![CDATA[
Satırsonu karakteri yok
<?= "Ama şimdi var" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Some textSatırsonu karakteri yok
Ama şimdi var
]]>
</screen>
</example>
</para>
<para>
PHP ayrıştırıcısına girme ve çıkma örnekleri:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'Bu bir denemedir';
?>
<?php echo 'Bu bir denemedir' ?>
<?php echo 'Son kapanış etiketini koymadık';
]]>
</programlisting>
</informalexample>
<note>
<para>
Dosya sonunda PHP kapanış etiketini kullanmak isteğe bağlıdır, hatta
dosya sonlarında istemdışı boş satırlar oluşması gibi durumlarda
<function>include</function>, <function>require</function> gibi
işlevlerin kullanımında yararlı bile olabilir, dahası sonradan yanıta
başlık eklemeye devam edebilirsiniz. Bu özellik ayrıca, çıktı
tamponlama kullanıyorsanız ve betiğe <function>include</function> ile
eklediğiniz dosyalar tarafından üretilen kısımların sonunda gereksiz
boş satırların oluşmasını istemediğinizde de işe yarar.
</para>
</note>
</para>
</sect1>
<sect1 xml:id="language.basic-syntax.comments">
<title>Açıklamalar</title>
<para>
PHP, 'C', 'C++' ve Unix kabuk tarzı (Perl tarzı) açıklamaların hepsini destekler. Örnegin:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
echo 'Bu bir denemedir'; // Bu tek satırlık c++ tarzı açıklamadır
/* Bu, C tarzı çok satırlı
bir açıklamadır */
echo 'Bir deneme daha';
echo 'Bu da sonuncusu'; # Bu tek satırlık kabuk tarzı açıklamadır
?>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
"Tek satırlık" bir açıklamanın etki alanı yalnızca satır sonuna ya da PHP
kod bloğunun sonuna kadardır. Yani, <literal>// ... ?></literal> ya da
<literal># ... ?></literal> kullanımından sonra gelecek HTML kodu
YAZDIRILACAKTIR: <code>?></code> etiketi PHP kipinden çıkılmasına ve
HTML kipine dönülmesini sağlar, <literal>//</literal> ya da
<literal>#</literal> kullanımı bunu etkileyemez.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<h1>Bu <?php # echo 'basit';?> bir örnektir.</h1>
<p>Yukarıdaki başlık 'Bu bir örnektir' diye gösterilecektir.</p>
]]>
</programlisting>
</informalexample>
</para>
<simpara>
Bir 'C' tarzı açıklama ilk <literal>*/</literal> ile karşılaşıldığı
noktada sona erer. 'C' tarzı açıklamaları iç içe kullanmamalısınız. Büyük
miktarda kod bloğunu açıklama haline getirirken bu yanlış genellikle
yapılır.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/*
echo 'Bu bir denemedir'; /* Bu açıklama sorun çıkaracak. */
*/
?>
]]>
</programlisting>
</informalexample>
</para>
</sect1>
</chapter>
<!-- 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
-->