<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/langref.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.expressions.php',
    1 => 'İfadeler',
    2 => 'İfadeler',
  ),
  'up' => 
  array (
    0 => 'langref.php',
    1 => 'Dil Başvuru Kılavuzu',
  ),
  'prev' => 
  array (
    0 => 'language.constants.magic.php',
    1 => 'Sihirli Sabitler',
  ),
  'next' => 
  array (
    0 => 'language.operators.php',
    1 => 'İşle&ccedil;ler',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/expressions.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.expressions" class="chapter">
   <h1 class="title">İfadeler</h1>

   <p class="para">
    İfadeler, PHP&#039;nin en önemli yapı taşlarındandır. PHP&#039;de, hemen hemen
    yazdığınız her şey bir ifadedir. Bir ifadenin en basit ama en etkili
    tanımı şudur: &quot;Bir değere sahip olan herşey&quot;.
   </p>
   <p class="para">
    İfadelerin en basit şekli sabitler ve değişkenlerdir. &quot;<code class="literal">$a =
    5</code>&quot; yazdığınızda, &#039;<code class="literal">5</code>&#039; değerini
    <var class="varname">$a</var> değişkenine atamış olursunuz. &#039;<code class="literal">5</code>&#039;,
    açık bir şekilde, <code class="literal">5</code> değerine sahiptir, ya da başka bir
    deyişle &#039;<code class="literal">5</code>&#039;, değeri <code class="literal">5</code> olan
    bir ifadedir (bu durumda, &#039;<code class="literal">5</code>&#039; bir tamsayı sabittir).
   </p>
   <p class="para">
    Bu atamadan sonra, <var class="varname">$a</var>&#039;nın değerinin <code class="literal">5</code>
    olmasını beklersiniz, dolayısıyla <code class="literal">$b = $a</code> yazdığınızda,
    bunun <code class="literal">$b = 5</code> yazmışsınız gibi davranmasını beklersiniz.
    Başka bir deyişle, <var class="varname">$a</var> da değeri <code class="literal">5</code>
    olan ifadedir. Her şey doğru çalışırsa, olması gereken de tam budur.
   </p>
   <p class="para">
    İşlevler, ifadelerin biraz daha karmaşık örnekleridir. Örneğin, aşağıdaki
    işleve bakalım:
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">foo </span><span style="color: #007700">()<br />{<br />    return </span><span style="color: #0000BB">5</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    İşlev kavramına aşina iseniz (değilseniz, <a href="language.functions.php" class="link">işlevler</a> bölümünü
    inceleyebilirsiniz), şu örnekten hareketle <code class="literal">$c = foo()</code>
    yazmak ile <code class="literal">$c = 5</code> yazmak arasında bir fark olmadığını
    bilirsiniz. İşlevler, değeri dönüş değeri olan ifadelerdir.
    <code class="literal">foo()</code> işlevi <code class="literal">5</code> değerini
    döndürdüğünden, &quot;<code class="literal">foo()</code>&quot; ifadesinin değeri <code class="literal">5</code>&#039;tir.
    İşlevlerin amacı normalde statik bir değer döndürmek değildir, bir
    hesaplamanın sonucunu döndürürler.
   </p>
   <p class="para">
    Elbette, PHP&#039;deki değerlerin hep tamsayılar olması gerekmez, zaten
    çoğunlukla değildirler. PHP dört çeşit sayıl değer destekler: Tamsayı
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) değerler, kayan noktalı (<span class="type"><a href="language.types.float.php" class="type float">float</a></span>)
    değerler, dizge (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>) değerler ve mantıksal
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> değerler (sayıl değerler, dizilerin aksine daha
    küçük parçalara bölemeyeceğiniz değerlerdir). PHP ayrıca iki bileşik
    (sayıl olmayan) tür destekler: Diziler ve nesneler. Bu değer türlerinden
    her biri bir değişkene atanabilir ya da bir işlevden döndürülebilir.
   </p>
   <p class="para">
    PHP, birçok başka dilin yaptığı gibi ifadeleri çok ileriye götürmüştür.
    PHP ifade-yönelimli bir dildir, bunun sebebi hemen hemen her şeyin bir
    ifade olmasıdır. Az önce üzerinde çalıştığımız &#039;<code class="literal">$a = 5</code>&#039;
    örneğini ele alalım. Burada iki değer kullanımı sözkonusudur, bir tamsayı
    sabit olan &#039;<code class="literal">5</code>&#039; ve <code class="literal">5</code> olarak
    değiştirilmiş <var class="varname">$a</var>&#039;nın değeri. Ancak gerçek şu ki, burada
    bu ikiliye ek olarak başka bir değer daha vardır, o da atamanın kendi
    değeridir. Atamanın kendisi atanan değerle değerlendirilir, bu örnekte bu
    <code class="literal">5</code>&#039;tir. Uygulamada, ne yaptığından bağımsız olarak
    &quot;<code class="literal">$a = 5</code>&quot;, değeri <code class="literal">5</code> olan
    bir ifadedir. Böylece, &quot;<code class="literal">$b = ($a = 5)</code>&quot; yazmak,
    &quot;<code class="literal">$a = 5; $b = 5;</code>&quot; yazmak
    gibidir (noktalı virgül deyimin sonlandırıldığını gösterir). Atamalar
    sağdan sola doğru işlendiğinden, &quot;<code class="literal">$b = $a = 5</code>&quot; de
    yazabilirsiniz.
   </p>
   <p class="para">
    İfade yönelimi ile ilgili diğer güzel bir örnek atama öncesi ve sonrası
    arttırma ve eksiltme işlemleridir. PHP ve diğer birçok dilin
    kullanıcıları, <var class="varname">değişken++</var> ve
    <var class="varname">değişken--</var> gösterimine az çok aşinadır.
    Bunlar <a href="language.operators.increment.php" class="link">arttırma ve eksiltme
    işleçleri</a>dir.
    PHP&#039;de, C&#039;de olduğu gibi önceden arttırma ve sonradan arttırma diye iki
    tür arttırma vardır. Bunların her ikisi de değişkenin değerini bir
    arttırır ve değişken üzerindeki etkileri aynıdır. Fark, arttırma
    ifadesinin değerindedir. Önceden arttırma, <var class="varname">++$değişken</var>
    olarak yazılır ve arttırılmış değer öncelik alır (PHP değişkenin değerini
    önce arttırır, sonra okur, bu sebeple önceden arttırma ismi verilmiştir).
    Sonradan arttırma ise, <var class="varname">$değişken++</var> olarak yazılır ve
    değer arttırılmadan önceki özgün değer önceliklidir (PHP değişkenin
    değerini okuduktan sonra değerini arttırır, bu sebeple sonradan arttırma
    ismi verilmiştir).
   </p>
   <p class="para">
    Çok geniş bir kullanıma sahip olan ifade türlerinden birisi de <a href="language.operators.comparison.php" class="link">karşılaştırma</a>
    ifadeleridir. Bu ifadeler <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> ya da <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> değerlerinden birini
    alırlar. PHP <code class="literal">&gt;</code> (büyüktür), <code class="literal">&gt;=</code>
    (büyüktür ya da eşittir), <code class="literal">==</code> (eşittir),
    <code class="literal">!=</code> (eşit değildir), <code class="literal">&lt;</code> (küçüktür)
    ve <code class="literal">&lt;=</code> (küçüktür ya da eşittir) gösterimlerini
    destekler. Dil aynı zamanda aynılık işleçlerini de destekler:
    <code class="literal">===</code> (eşit ve aynı türdedir) ve <code class="literal">!==</code>
    (ne eşit ne de aynı türdedir). Bu ifadeler çoğunlukla <code class="literal">if</code>
    deyimleri gibi koşula bağlı işlemlerde kullanılmaktadırlar.
   </p>
   <p class="para">
    Vereceğimiz son ifade örneği işleçli atama ifadeleridir.
    <var class="varname">$a</var>&#039;nın değerini 1 arttırmak istediğinizde, basitçe
    &#039;<code class="literal">$a++</code>&#039; ya da &#039;<code class="literal">++$a</code>&#039; yazmanızın yeterli
    olduğunu zaten biliyorsunuz. Ama ya birden daha büyük bir değer, örneğin
    3 eklemek isterseniz? &#039;<code class="literal">$a++</code>&#039; ifadesini birkaç kez
    yazabilirsiniz, ama bunun pek verimli ya da kullanışlı yöntem olmadığı
    oldukça açık. &#039;<code class="literal">$a = $a + 3</code>&#039; çok daha yaygın bir
    kullanımdır. &#039;<code class="literal">$a + 3</code>&#039; ifadesi <var class="varname">$a</var>&#039;nın
    değerini önce 3 arttırır sonra sonucu <var class="varname">$a</var>&#039;ya atar,
    böylece <var class="varname">$a</var>&#039;nın değeri 3 arttırılmış olur. PHP&#039;de, birkaç
    dilde olduğu gibi C benzeri, daha temiz gözükecek ve daha kısa biçimde
    yazabileceğiniz bir gösterim daha vardır. <var class="varname">$a</var>&#039;nın mevcut
    değerine 3 ekleme işlemi &#039;<code class="literal">$a += 3</code>&#039; biçiminde yazılabilir.
    Bunun anlamı tam olarak &quot;<var class="varname">$a</var>&#039;nın değerini al, 3 ekle ve
    yeni değeri <code class="literal">$a</code>&#039;ya ata&quot; olacaktır. Daha kısa ve temiz
    olmasının yanında, bu kod daha hızlı çalıştırılacaktır. &#039;<code class="literal">$a +=
    3</code>&#039; işleminin değeri, normal bir atama işleminde olduğu gibi,
    atanan değerdir. Bu değerin 3 OLMADIĞINA dikkat edin, bu değer
    <var class="varname">$a</var> ile 3&#039;ün toplamıdır (<var class="varname">$a</var>’ya bu
    değer atanır). İşleçli atama kipinde herhangi bir iki terimli işleç
    kullanılabilir, örneğin &#039;<code class="literal">$a -= 5</code>&#039;
    (<var class="varname">$a</var>&#039;nın değerinden 5 çıkarılır), &#039;<code class="literal">$b *=
    7</code>&#039; (<var class="varname">$b</var>&#039;nin değeri 7 ile çarpılır), vs.
   </p>
   <p class="para">
    Diğer dillerde görmediyseniz size farklı gözükebilecek bir ifade daha
    vardır, o da üç terimli koşul işlecidir:
   </p>
   <p class="para">
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$birinci </span><span style="color: #007700">? </span><span style="color: #0000BB">$ikinci </span><span style="color: #007700">: </span><span style="color: #0000BB">$üçüncü<br />?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    İlk alt ifadenin değeri <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> (sıfırdan farklı) ise, ikinci alt ifade
    değerlendirilir ve koşullu ifadenin sonucu bu olur. Aksi takdirde, üçüncü
    alt ifade değerlendirilir ve koşullu ifadenin sonucu bu olur.
   </p>
   <p class="para">
    Aşağıdaki örnek, önceden ve sonradan arttırma işleçlerini ve ifadelerini
    genelde biraz daha iyi anlamanıza yardımcı olacaktır:
   </p>
   <p class="para">
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">double</span><span style="color: #007700">(</span><span style="color: #0000BB">$i</span><span style="color: #007700">)<br />{<br />    return </span><span style="color: #0000BB">$i</span><span style="color: #007700">*</span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">$b </span><span style="color: #007700">= </span><span style="color: #0000BB">$a </span><span style="color: #007700">= </span><span style="color: #0000BB">5</span><span style="color: #007700">;    </span><span style="color: #FF8000">/* beş değerini $a ve $b değişkenlerine atar */<br /></span><span style="color: #0000BB">$c </span><span style="color: #007700">= </span><span style="color: #0000BB">$a</span><span style="color: #007700">++;      </span><span style="color: #FF8000">/* sonradan arttırma, $a'nın özgün değerini (5) $c'ye atar */<br /></span><span style="color: #0000BB">$e </span><span style="color: #007700">= </span><span style="color: #0000BB">$d </span><span style="color: #007700">= ++</span><span style="color: #0000BB">$b</span><span style="color: #007700">; </span><span style="color: #FF8000">/* önceden arttırma, $b'nin arttırılmış değerini (6) $d<br />                   ve $e'ye atar */<br /><br />/* bu noktada, $d ve $e 6'ya eşittir */<br /><br /></span><span style="color: #0000BB">$f </span><span style="color: #007700">= </span><span style="color: #0000BB">double</span><span style="color: #007700">(</span><span style="color: #0000BB">$d</span><span style="color: #007700">++);  </span><span style="color: #FF8000">/* $d'nin değerini arttırmadan önce $d'nin değerinin iki<br />                       katını $f'ye atar,  2*6 = 12 */<br /></span><span style="color: #0000BB">$g </span><span style="color: #007700">= </span><span style="color: #0000BB">double</span><span style="color: #007700">(++</span><span style="color: #0000BB">$e</span><span style="color: #007700">);  </span><span style="color: #FF8000">/* $e'nin değerini arttırdıktan sonra iki katını alıp<br />                       $g'ye atar,  2*7 = 14 */<br /></span><span style="color: #0000BB">$h </span><span style="color: #007700">= </span><span style="color: #0000BB">$g </span><span style="color: #007700">+= </span><span style="color: #0000BB">10</span><span style="color: #007700">;      </span><span style="color: #FF8000">/* önce, $g 10 arttırılır ve değeri 24 olur. Sonra bu<br />                       değer (24) $h'ye atanır ve onun da değeri 24 olur. */<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    Bazı ifadeler deyim olarak ele alınabilir. Bu durumda, deyim &#039;ifade&#039; &#039;;&#039;
    şeklinde, noktalı virgülle sonlandırılmış bir ifade şeklinde olacaktır.
    &#039;<code class="literal">$=$a=5;</code>&#039; olduğunda, <code class="literal">$a=5</code> geçerli bir
    ifadedir, ancak kendi başına bir deyim değildir.
    &#039;<code class="literal">$b=$a=5;</code>&#039; ise geçerli bir deyimdir.
   </p>
   <p class="para">
    Son olarak bahsetmemiz gereken bir konu da ifadelerin gerçek değeridir.
    Birçok olayda, çoğunlukla da koşula bağlı çalışmalarda ve döngülerde,
    ifadenin kendi değeri ile değil, <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> ya da <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> olması ile
    ilgileniyor olacaksınız.

    

    <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> ve <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> sabitleri (büyük-küçük harf duyarsız) olası iki
    mantıksal değerdir. Gerektiğinde, bir ifade otomatik olarak mantıksal
    değere dönüştürülür. <a href="language.types.type-juggling.php#language.types.typecasting" class="link">Tür
    çarpıtma</a> bölümünde bunun nasıl gerçekleştiği ayrıntılı olarak
    anlatılmıştır.
   </p>
   <p class="para">
    PHP ifadeleri tümüyle ve çok güçlü bir biçimde uygulamaya geçirmiştir ve
    bunların tamamını belgelemek bu kılavuzun kapsamının dışında kalır.
    Yukarıdaki örnekler hangi ifadelerle nasıl kullanışlı ifadeler
    oluşturabileceğiniz hakkında yeterli fikir verecektir. Bu kılavuzun
    geri kalanında, geçerli herhangi bir PHP ifadesini belirtmek için
   <var class="varname">ifade</var> sözcüğünü kullanacağız.
   </p>
  </div>
<?php manual_footer($setup); ?>