<?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.foreach.php',
    1 => 'foreach',
    2 => 'foreach',
  ),
  'up' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Denetim Yapıları',
  ),
  'prev' => 
  array (
    0 => 'control-structures.for.php',
    1 => 'for',
  ),
  'next' => 
  array (
    0 => 'control-structures.break.php',
    1 => 'break',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/control-structures/foreach.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="control-structures.foreach" class="sect1">
 <h2 class="title">foreach</h2>
 <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p>
 <p class="para">
  <code class="literal">foreach</code> yapısı diziler üzerinde yineleme yapmayı
  kolaylaştırmaktadır. <code class="literal">foreach</code> yalnızca diziler ve nesneler
  için kullanılabilir; farklı veri türünde veya ilklendirilmemiş bir değişken
  ile kullanmak istediğinizde hata verir. İki sözdizimi mevcuttur:
  <div class="informalexample">
   <div class="example-contents">
<div class="cdata"><pre>
foreach (yinelenebilir_ifade as $değer)
    deyim
foreach (yinelenebilir_ifade as $isim =&gt; $değer)
    deyim
</pre></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  İlk sözdizimi <code class="literal">yinelenebilir_ifade</code> ile belirtilen
  yinelenebilirin etrafında döner. Her yinelemede, sırası gelen elemanın değeri
  <code class="literal">$değer</code> değişkenine atanır.
 </p>
 <p class="simpara">
  İkinci yöntem de aynı şeyi yapar, ek olarak her yinelemede sırası gelen
  elemanın anahtarı <code class="literal">$isim</code> değişkenine atanır.
 </p>
 <p class="simpara">
  <code class="literal">foreach</code> işlevinin, <span class="function"><a href="function.current.php" class="function">current()</a></span>
  ve <span class="function"><a href="function.key.php" class="function">key()</a></span> gibi işlevler tarafından kullanılan dahili dizi
  göstericisini değiştirmediği unutulmamalıdır.
 </p>
 <p class="simpara">
  PHP 5&#039;den itibaren, <a href="language.oop5.iterations.php" class="link">nesneleri
  yinelemek</a> mümkün olmuştur.
 </p>
 <p class="para">
  <code class="literal">$değer</code> değişkeninin önüne &amp; koyarak dizi elemanları
  üzerinde kolayca değişiklik yapılabilir. Böylece değer <a href="language.references.php" class="link">gönderimli</a> hale gelir.
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dizi </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">);<br />foreach (</span><span style="color: #0000BB">$dizi </span><span style="color: #007700">as &amp;</span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$değer </span><span style="color: #007700">= </span><span style="color: #0000BB">$değer </span><span style="color: #007700">* </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />}<br /></span><span style="color: #FF8000">// $dizi artık array(2, 4, 6, 8) olmuştur<br /></span><span style="color: #007700">unset(</span><span style="color: #0000BB">$değer</span><span style="color: #007700">); </span><span style="color: #FF8000">// son eleman da işlendiğine göre gönderimi kaldıralım<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <div class="warning"><strong class="warning">Uyarı</strong>
  <p class="para">
    <code class="literal">$değer</code> gönderim için kullanıldığından
    <code class="literal">foreach</code> döngüsünün sonunda son dizi elemanına
    gönderimli olarak kalır, bu bakımdan döngünün sonunda bu gönderimin
    <span class="function"><a href="function.unset.php" class="function">unset()</a></span> işlevi kullanılarak kaldırılması önerilir.
    Yoksa aşağıdaki davranışla karşılaşırsınız:
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dizi </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">);<br />foreach (</span><span style="color: #0000BB">$dizi </span><span style="color: #007700">as &amp;</span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$değer </span><span style="color: #007700">= </span><span style="color: #0000BB">$değer </span><span style="color: #007700">* </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />}<br /></span><span style="color: #FF8000">// $dizi şimdi array(2, 4, 6, 8)<br /><br />// unset($değer) olmaksızın, $değer hala son öğeye gösterimli olur: $dizi[3]<br /><br /></span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$dizi </span><span style="color: #007700">as </span><span style="color: #0000BB">$key </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #FF8000">// $dizi[3] artık $dizi içindeki her değerle güncellenecek<br />    </span><span style="color: #007700">echo </span><span style="color: #DD0000">"</span><span style="color: #007700">{</span><span style="color: #0000BB">$key</span><span style="color: #007700">}</span><span style="color: #DD0000"> =&gt; </span><span style="color: #007700">{</span><span style="color: #0000BB">$değer</span><span style="color: #007700">}</span><span style="color: #DD0000"> "</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$dizi</span><span style="color: #007700">);<br /> }<br /></span><span style="color: #FF8000">// ...ikinciden son değere kadar son değere kopyalanacak.<br /><br />// çıktı:<br />// 0 =&gt; 2 Array ( [0] =&gt; 2, [1] =&gt; 4, [2] =&gt; 6, [3] =&gt; 2 )<br />// 1 =&gt; 4 Array ( [0] =&gt; 2, [1] =&gt; 4, [2] =&gt; 6, [3] =&gt; 4 )<br />// 2 =&gt; 6 Array ( [0] =&gt; 2, [1] =&gt; 4, [2] =&gt; 6, [3] =&gt; 6 )<br />// 3 =&gt; 6 Array ( [0] =&gt; 2, [1] =&gt; 4, [2] =&gt; 6, [3] =&gt; 6 )<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>
 <p class="para">
  Bir sabit dizinin değerini gönderim olarak yinelemek 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">foreach (array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">) as &amp;</span><span style="color: #0000BB">$değer</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$değer </span><span style="color: #007700">= </span><span style="color: #0000BB">$değer </span><span style="color: #007700">* </span><span style="color: #0000BB">2</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
  <p class="para">
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    <code class="literal">foreach</code>
    <code class="literal">@</code> kullanarak
    hata iletilerini göstermeme yeteneğini desteklemez.
   </p>
  </p></blockquote>
 </p>
 <p class="para">
  Değişik kullanımlara örnekler:
  <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: #FF8000">/* foreach örneği 1: yalnızca değer */<br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">17</span><span style="color: #007700">);<br /><br />foreach (</span><span style="color: #0000BB">$a </span><span style="color: #007700">as </span><span style="color: #0000BB">$v</span><span style="color: #007700">) {<br />   echo </span><span style="color: #DD0000">"\$a değişkeninin şu anki değeri: </span><span style="color: #0000BB">$v</span><span style="color: #DD0000">.\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">/* foreach örneği 2: değer (örnek olması için anahtar<br /> *  ile birlikte yazdırılmıştır) */<br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">17</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$i </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #FF8000">/* yalnızca örnekleme için */<br /><br /></span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$a </span><span style="color: #007700">as </span><span style="color: #0000BB">$v</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"\$a[</span><span style="color: #0000BB">$i</span><span style="color: #DD0000">] =&gt; </span><span style="color: #0000BB">$v</span><span style="color: #DD0000">.\n"</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$i</span><span style="color: #007700">++;<br />}<br /><br /></span><span style="color: #FF8000">/* foreach örneği 3: anahtar ve değer */<br /><br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= array(<br />    </span><span style="color: #DD0000">"bir" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"iki" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">2</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"üç"  </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">3</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">"on yedi" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">17<br /></span><span style="color: #007700">);<br /><br />foreach (</span><span style="color: #0000BB">$a </span><span style="color: #007700">as </span><span style="color: #0000BB">$k </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$v</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"\$a[</span><span style="color: #0000BB">$k</span><span style="color: #DD0000">] =&gt; </span><span style="color: #0000BB">$v</span><span style="color: #DD0000">.\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">/* foreach örneği 4: çok boyutlu diziler */<br /></span><span style="color: #0000BB">$a </span><span style="color: #007700">= array();<br /></span><span style="color: #0000BB">$a</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">] = </span><span style="color: #DD0000">"a"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #0000BB">1</span><span style="color: #007700">] = </span><span style="color: #DD0000">"b"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">] = </span><span style="color: #DD0000">"y"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$a</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">][</span><span style="color: #0000BB">1</span><span style="color: #007700">] = </span><span style="color: #DD0000">"z"</span><span style="color: #007700">;<br /><br />foreach (</span><span style="color: #0000BB">$a </span><span style="color: #007700">as </span><span style="color: #0000BB">$v1</span><span style="color: #007700">) {<br />    foreach (</span><span style="color: #0000BB">$v1 </span><span style="color: #007700">as </span><span style="color: #0000BB">$v2</span><span style="color: #007700">) {<br />        echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$v2</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #FF8000">/* foreach örneği 5: dinamik diziler */<br /><br /></span><span style="color: #007700">foreach (array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">) as </span><span style="color: #0000BB">$v</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$v</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>

 <div class="sect2" id="control-structures.foreach.list">
  <h3 class="title">İç içe dizilerin list() ile ayrıştırılması</h3>
  <p class="verinfo">(PHP 5 &gt;= 5.5.0, PHP 7, PHP 8)</p>

  <p class="para">
   Dizi dizileri üzerinde döngü
   oluşturmak ve <span class="function"><a href="function.list.php" class="function">list()</a></span> işlevini değer olarak kullanmak
   suretiyle içteki diziyi döngü değişkenlerine atayarak onu da açmak artık
   mümkündür.
  </p>

  <p class="para">
   Örneğin:

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dizi </span><span style="color: #007700">= [<br />    [</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">],<br />    [</span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">],<br />];<br /><br />foreach (</span><span style="color: #0000BB">$dizi </span><span style="color: #007700">as list(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">)) {<br />    </span><span style="color: #FF8000">// $a içteki dizinin ilk elemanını,<br />    // $b ikinci elemanını içerecektir.<br />    </span><span style="color: #007700">echo </span><span style="color: #DD0000">"A: </span><span style="color: #0000BB">$a</span><span style="color: #DD0000">; B: </span><span style="color: #0000BB">$b</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <p class="para">
Yukarıdaki örneğin çıktısı:</p>
    <div class="example-contents screen">
<div class="cdata"><pre>
A: 1; B: 2
A: 3; B: 4
</pre></div>
    </div>
   </div>
  </p>

  <p class="para">
   İçteki dizinin gerekmeyen elemanlarını <span class="function"><a href="function.list.php" class="function">list()</a></span> içinde
   içermeyebilirsiniz:

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dizi </span><span style="color: #007700">= [<br />    [</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">],<br />    [</span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">],<br />];<br /><br />foreach (</span><span style="color: #0000BB">$dizi </span><span style="color: #007700">as list(</span><span style="color: #0000BB">$a</span><span style="color: #007700">)) {<br />    </span><span style="color: #FF8000">// Burada artık $b yok.<br />    </span><span style="color: #007700">echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$a</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <p class="para">
Yukarıdaki örneğin çıktısı:</p>
    <div class="example-contents screen">
<div class="cdata"><pre>
1
3
</pre></div>
    </div>
   </div>
  </p>

  <p class="para">
   <span class="function"><a href="function.list.php" class="function">list()</a></span> için yeterli sayıda dizi elemanı yoksa bir uyarı
   üretilir.:

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dizi </span><span style="color: #007700">= [<br />    [</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">],<br />    [</span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #0000BB">4</span><span style="color: #007700">],<br />];<br /><br />foreach (</span><span style="color: #0000BB">$dizi </span><span style="color: #007700">as list(</span><span style="color: #0000BB">$a</span><span style="color: #007700">, </span><span style="color: #0000BB">$b</span><span style="color: #007700">, </span><span style="color: #0000BB">$c</span><span style="color: #007700">)) {<br />    echo </span><span style="color: #DD0000">"A: </span><span style="color: #0000BB">$a</span><span style="color: #DD0000">; B: </span><span style="color: #0000BB">$b</span><span style="color: #DD0000">; C: </span><span style="color: #0000BB">$c</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <p class="para">
Yukarıdaki örneğin çıktısı:</p>
    <div class="example-contents screen">
<div class="cdata"><pre>

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C:
</pre></div>
    </div>
   </div>
  </p>
 </div>
 </div><?php manual_footer($setup); ?>