-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathbasic-syntax.xml
More file actions
296 lines (277 loc) · 9.79 KB
/
basic-syntax.xml
File metadata and controls
296 lines (277 loc) · 9.79 KB
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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0e618211e53c66f33762be225a4d57c08ef4b2f7 Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<title>Temel Sözdizimi</title>
<sect1 xml:id="language.basic-syntax.phptags">
<title>PHP etiketleri</title>
<para>
PHP bir dosyayı işlerken, PHP kodunun yürütülme sınırlarını tanımlamak
için <literal><?php</literal> ve <literal>?></literal> açma ve
kapatma etiketlerini tanır. Bu etiketlerin dışındaki içerik, PHP
ayrıştırıcısı tarafından göz ardı edilir ve PHP'nin çeşitli belge
türlerine sorunsuz bir şekilde gömülmesini sağlar.
</para>
<para>
Uygun dizgeciklerin ayrılmasını sağlamak için <literal><?php</literal>
etiketinin hemen ardında bir boşluk karakteri (boşluk, sekme veya satır
sonu) bulunmalıdır. Bu boşluğun bulunmaması sözdizimi hatasına neden
olacaktır.
</para>
<para>
PHP ayrıca <code><?php echo</code> için kısayol olan
<literal><?=</literal> kısa <code>echo</code> etiketi 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 PHP kodu ile bitiyorsa, 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.
</para>
<para>
<example>
<title>- PHP koduyla biten dosya</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Merhaba Dünya\n";
// ... daha kod
echo "İletişimin sonu\n";
// PHP kapama etiketi olmadan betik burada biter
]]>
</programlisting>
</example>
</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 ayrıştırcısı
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.
</para>
<para>
<example>
<title>- HTML içine PHP gömmek</title>
<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>
</example>
</para>
<para>
Bu beklendiği gibi çalışır, çünkü PHP ayrıştırcısı <literal>?></literal>
kapanış etiketine rastlayınca (hemen ardından bir satır sonu 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 ayrıştırıcı
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 Ayırma</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ır sonu karakterini de kendisi ekleyecektir.
</para>
<para>
<example>
<title>- Sondaki satır sonu karakterini kapsayan kapanış etiketini gösteren örnek</title>
<programlisting role="php">
<![CDATA[
Satırsonu karakteri yok
<?= "Ama şimdi var" ?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Satırsonu karakteri yok
Ama şimdi var
]]>
</screen>
</example>
</para>
<para>
<example>
<title>- PHP ayrıştırıcısına girme ve çıkma örnekleri</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Bu bir denemedir\n";
?>
<?php echo "Bu bir denemedir\n" ?>
<?php echo "Son kapanış etiketini koymadık\n";
]]>
</programlisting>
</example>
</para>
<para>
<note>
<para>
Dosya sonunda PHP kapanış etiketini kullanmak isteğe bağlıdır, hatta
dosya sonlarında istem dışı 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:
</para>
<para>
<example>
<title>- Açıklamalar</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Bu bir denemedir\n"; // Bu tek satırlık c++ tarzı açıklamadır
/* Bu, C tarzı çok satırlı
bir açıklamadır */
echo "Bir deneme daha\n";
echo "Bu da sonuncusu\n"; # Bu tek satırlık kabuk tarzı açıklamadır
?>
]]>
</programlisting>
</example>
</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>
<example>
<title>- Tek satırlık açıklamalar</title>
<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>
</example>
</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
-->