1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-23 23:02:09 +01:00
Files
archived-doc-tr/language/basic-syntax.xml
Nilgün Belma Bugüner c2fc474c61 fix typo
2025-07-26 17:10:21 +03:00

297 lines
9.8 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: 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>&lt;?php</literal> ve <literal>?&gt;</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>&lt;?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>&lt;?php echo</code> için kısayol olan
<literal>&lt;?=</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>&lt;?</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>&lt;?php ?&gt;</code> ve <code>&lt;?= ?&gt;</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>?&gt;</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>&lt;?php ?&gt;</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>ı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ıı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ıı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>// ... ?&gt;</literal> ya da
<literal># ... ?&gt;</literal> kullanımından sonra gelecek HTML kodu
YAZDIRILACAKTIR: <code>?&gt;</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ııklama ilk <literal>*/</literal> ile karşılaşıldığı
noktada sona erer. 'C' tarzıı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
-->