<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.control-structures.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'control-structures.switch.php',
    1 => 'switch',
    2 => 'switch',
  ),
  'up' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Denetim Yapıları',
  ),
  'prev' => 
  array (
    0 => 'control-structures.continue.php',
    1 => 'continue',
  ),
  'next' => 
  array (
    0 => 'control-structures.match.php',
    1 => 'match',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/control-structures/switch.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="control-structures.switch" class="sect1">
 <h2 class="title">switch</h2>
 <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p>
 <p class="simpara">
  <code class="literal">switch</code> deyimi, aynı ifade içersinde yer alan bir dizi
  IF deyimine benzer. Birçok durumda, aynı değişkeni (ya da ifadeyi)
  birden çok değerle karşılaştırmak ve her karşılaştırmanın sonucunu
  ayrı bir kod parçası çalıştırarak değerlendirmek istersiniz. İşte bu,
  <code class="literal">switch</code> deyiminin varlık sebebidir.
 </p>
 <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
  <span class="simpara">
    Başka bazı dillerden farklı olarak, <a href="control-structures.continue.php" class="link">continue</a> deyimi
    <code class="literal">switch</code> ile uygulanabilir ve
    <code class="literal">break</code> ile benzerlik gösterir. Bir döngü içerisinde
    <code class="literal">switch</code> kullandıysanız ve kodun yürütülmesine
    dıştaki döngünün sonraki yinelemeden devam etmesini istiyorsanız,
    <code class="literal">continue 2</code> kullanabilirsiniz.
  </span>
 </p></blockquote>
 <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
  <p class="para">
    <code class="literal">switch</code> ve <code class="literal">case</code>
    <a href="types.comparisons.php#types.comparisions-loose" class="link">gevşek karşılaştırma</a>
    yapar.
  </p>
 </p></blockquote>
 <p class="para">
  Aşağıdaki iki örnek aynı şeyi yazmanın iki farklı yolunu göstermektedir.
  Birincisi bir dizi <code class="literal">if</code> ve  <code class="literal">elseif</code>
  deyiminin kullanımını, ikincisi ise <code class="literal">switch</code> deyiminin
  kullanımını örneklemektedir:
  <div class="example" id="example-1">
   <p><strong>Örnek 1 - <code class="code">switch</code> yapısı</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Bu switch deyimi:<br /><br /></span><span style="color: #007700">switch (</span><span style="color: #0000BB">$i</span><span style="color: #007700">) {<br />case </span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 0"</span><span style="color: #007700">;<br />    break;<br />case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 1"</span><span style="color: #007700">;<br />    break;<br />case </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 2"</span><span style="color: #007700">;<br />    break;<br />}<br /><br /></span><span style="color: #FF8000">// bunlara eşdeğerdir:<br /><br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">$i </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"i eşittir 0"</span><span style="color: #007700">;<br />} elseif (</span><span style="color: #0000BB">$i </span><span style="color: #007700">== </span><span style="color: #0000BB">1</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"i eşittir 1"</span><span style="color: #007700">;<br />} elseif (</span><span style="color: #0000BB">$i </span><span style="color: #007700">== </span><span style="color: #0000BB">2</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"i eşittir 2"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  Hatalardan kaçınmak için <code class="literal">switch</code> deyiminin nasıl
  çalıştığını anlamak önemlidir. <code class="literal">switch</code> deyimi satır
  satır ele alınır (aslında deyim deyim). Başlangıçta, hiçbir kod
  çalıştırılmaz. Yalnızca <code class="literal">switch</code> ifadesiyle birlikte
  verilen değer ile uyuşan <code class="literal">case</code> deyimi bulunduğunda PHP
  ilgili deyimleri çalıştırmaya başlar. PHP <code class="literal">switch</code>
  bloğu sonlanana kadar ya da ilk <code class="literal">break</code> deyimi ile
  karşılaşıncaya kadar çalışmasına devam eder. Bir case bloğunun sonuna
  <code class="literal">break</code> koymazsanız, PHP sonraki
  <code class="literal">case</code> deyiminden kodları çalıştırmaya devam eder.
  Örnek:
  <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">switch (</span><span style="color: #0000BB">$i</span><span style="color: #007700">) {<br />case </span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 0"</span><span style="color: #007700">;<br />case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 1"</span><span style="color: #007700">;<br />case </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 2"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Burada, <var class="varname">$i</var> 0&#039;a eşit ise, PHP tüm
  <code class="literal">echo</code> deyimlerini çalıştıracaktır!
  <var class="varname">$i</var> 1&#039;e eşit ise, PHP son iki <code class="literal">echo</code>
  deyimini çalıştıracaktır! Beklediğiniz sonucu (&#039;i eşittir 2&#039; metninin
  görüntülenmesi) yalnızca <var class="varname">$i</var> 2&#039;ye eşitse almanız
  mümkün olacaktır. Bu durumun oluşmaması için, <code class="literal">break</code>
  deyimini kullanmayı unutmamanız önemlidir (yine de, bazı durumlarda
  <code class="literal">break</code> deyimini kullanmak istemeyebilirsiniz).
 </p>
 <p class="simpara">
  Bir <code class="literal">switch</code> deyiminde, koşul yalnızca bir defa
  sorgulanır ve sonuç her bir <code class="literal">case</code> deyimi ile
  karşılaştırılır. Bir <code class="literal">elseif</code> deyiminde ise, koşul
  tekrar sorgulanır. Kullanmak istediğiniz koşul basit bir karşılaştırma
  işleminden daha karmaşıksa ve/veya bir döngü içerisindeyse,
  <code class="literal">switch</code> kullanmak daha hızlı olabilir.
 </p>
 <p class="para">
  <code class="literal">case</code> bloğu kod içermeyebilir ve amacı yalnızca
  denetimi bir sonraki <code class="literal">case</code> bloğuna geçirmek olabilir.
  <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">switch (</span><span style="color: #0000BB">$i</span><span style="color: #007700">) {<br />    case </span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />    case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />    case </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />        echo </span><span style="color: #DD0000">"i 3'ten küçüktür ama negatif değildir"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">3</span><span style="color: #007700">:<br />        echo </span><span style="color: #DD0000">"i eşittir 3"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
   <code class="literal">default</code> durumu özel bir durumdur. Bu durum diğer
   hiçbir <code class="literal">case</code> ile uyuşmayan değerler için kullanılır ve
   en sonda yer almalıdır. Örneğin:
  <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">switch (</span><span style="color: #0000BB">$i</span><span style="color: #007700">) {<br />case </span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 0"</span><span style="color: #007700">;<br />    break;<br />case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 1"</span><span style="color: #007700">;<br />    break;<br />case </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />    echo </span><span style="color: #DD0000">"i eşittir 2"</span><span style="color: #007700">;<br />    break;<br />default:<br />    echo </span><span style="color: #DD0000">"i ne 0, ne 1 ne de 2'ye eşittir"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
  <span class="simpara">
   Çok sayıda <code class="literal">default</code> kullanımı
   <strong><code><a href="errorfunc.constants.php#constant.e-compile-error">E_COMPILE_ERROR</a></code></strong> hatasını tetikler.
  </span>
 </p></blockquote>
 <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
  <span class="simpara">
   Teknik olarak <code class="literal">default</code> en sonda olmak zorunda değildir,
   herhangi bir yerde olabilir. Yanızca başka bir eşleşme olmazsa kullanılır.
   Ancak, geleneksel olarak, son dal olarak en sona yerleştirmek en iyisidir.
  </span>
 </p></blockquote>
 <p class="para">
  Hiçbir <code class="literal">case</code> eşleşmezse ve <code class="literal">default</code>
  dalı da yoksa tıpkı doğrulanmayan <code class="literal">if</code> deyiminde olduğu
  gibi hiçbir kod çalıştırılmaz.
 </p>
 <p class="para">
  <code class="literal">case</code> değeri bir ifade olarak belirtilebilir. Ancak, bu
  ifade kendi başına değerlendirilecek ve daha sonra <code class="literal">switch</code>
  değeri ile gevşek bir şekilde karşılaştırılacaktır.
  Yani, <code class="literal">switch</code> değeri karmaşık değerlendirmeler için
  kullanılamaz. Örnek:
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$hedef </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$ilk </span><span style="color: #007700">= </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /><br />switch (</span><span style="color: #0000BB">$hedef</span><span style="color: #007700">) {<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"A"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"B"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">3</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"C"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">4</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"D"</span><span style="color: #007700">;<br />        break;<br />}<br /><br /></span><span style="color: #FF8000">// "B" basar.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  Daha karmaşık karşılaştırmalarda <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> değeri
  <code class="literal">switch</code> değeri olarak kullanılabilir. Veya,
  <code class="literal">switch</code> yerine <code class="literal">if</code>-<code class="literal">else</code>
  deyimleri kullanılabilir.
  <div class="informalexample">
   <div class="example-contents">
    <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$konum </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$ilk </span><span style="color: #007700">= </span><span style="color: #0000BB">3</span><span style="color: #007700">;<br /><br />switch (</span><span style="color: #0000BB">true</span><span style="color: #007700">) {<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">$konum </span><span style="color: #007700">=== </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"A"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">$konum </span><span style="color: #007700">=== </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"B"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">$konum </span><span style="color: #007700">=== </span><span style="color: #0000BB">3</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"C"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">$ilk </span><span style="color: #007700">- </span><span style="color: #0000BB">$konum </span><span style="color: #007700">=== </span><span style="color: #0000BB">4</span><span style="color: #007700">:<br />        print </span><span style="color: #DD0000">"D"</span><span style="color: #007700">;<br />        break;<br />}<br /><br /></span><span style="color: #FF8000">// "B" basar.<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  İki noktalı sözdizimi <code class="literal">switch</code> deyimi için de
  desteklenmektedir. Daha fazla bilgi için, <a href="control-structures.alternative-syntax.php" class="link">Denetim yapıları için
  diğer sözdizimi</a> bölümünü inceleyebilirsiniz.
  <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">switch (</span><span style="color: #0000BB">$i</span><span style="color: #007700">):<br />    case </span><span style="color: #0000BB">0</span><span style="color: #007700">:<br />        echo </span><span style="color: #DD0000">"i eşittir 0"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">1</span><span style="color: #007700">:<br />        echo </span><span style="color: #DD0000">"i eşittir 1"</span><span style="color: #007700">;<br />        break;<br />    case </span><span style="color: #0000BB">2</span><span style="color: #007700">:<br />        echo </span><span style="color: #DD0000">"i eşittir 2"</span><span style="color: #007700">;<br />        break;<br />    default:<br />        echo </span><span style="color: #DD0000">"i ne 0, ne 1 ne de 2'ye eşittir;<br />endswitch;<br />?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  <code class="literal">case</code>’ten sonraki iki nokta yerine aşağıdaki gibi
  deyim sonunda noktalı virgül kullanmak da mümkündür:
  <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">switch(</span><span style="color: #0000BB">$içecek</span><span style="color: #007700">)<br />{<br />    case </span><span style="color: #DD0000">'su'</span><span style="color: #007700">;<br />    case </span><span style="color: #DD0000">'süt'</span><span style="color: #007700">;<br />    case </span><span style="color: #DD0000">'ayran'</span><span style="color: #007700">;<br />        echo </span><span style="color: #DD0000">'İyi seçim'</span><span style="color: #007700">;<br />        break;<br />    default;<br />        echo </span><span style="color: #DD0000">'Lütfen yeniden seçiniz...'</span><span style="color: #007700">;<br />        break;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>

 <div class="sect2">
  <h3 class="title">Ayrıca Bakınız</h3>
  <ul class="simplelist">
   <li><a href="control-structures.match.php" class="link">match</a></li>
  </ul>
 </div>
</div><?php manual_footer($setup); ?>