<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.functions.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'functions.arrow.php',
    1 => 'Ok İşlevleri',
    2 => 'Ok İşlevleri',
  ),
  'up' => 
  array (
    0 => 'language.functions.php',
    1 => 'İşlevler',
  ),
  'prev' => 
  array (
    0 => 'functions.anonymous.php',
    1 => 'Anonim işlevler',
  ),
  'next' => 
  array (
    0 => 'functions.first_class_callable_syntax.php',
    1 => 'Birinci sınıf &ccedil;ağrılabilir s&ouml;zdizimi',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/functions.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="functions.arrow" class="sect1">
   <h2 class="title">Ok İşlevleri</h2>

   <p class="simpara">
    Ok işlevleri PHP 7.4&#039;te <a href="functions.anonymous.php" class="link">anonim
    işlevler</a> için daha kısa bir sözdizimi olarak tanıtılmıştır.
   </p>
   <p class="simpara">
    Anonim işlevler ve ok işlevlerinin ikisi de
    <a href="class.closure.php" class="link"><span class="classname"><a href="class.closure.php" class="classname">Closure</a></span></a>
    sınıfı kullanılarak gerçeklenmiştir.
   </p>

   <p class="simpara">
    Ok işlevlerinin temel biçimi:
    <code class="code">fn (bağımsız değişkenler) =&gt; ifade</code>
   </p>

   <p class="simpara">
    Ok işlevleri, üst etki alanındaki değişkenleri daima otomatik
    kullanması dışında <a href="functions.anonymous.php" class="link">anonim
    işlevler</a>in desteklediği özelliklerin tümünü destekler.
   </p>

   <p class="simpara">
    İfadede kullanılan bir değişken üst etki alanında tanımlandığında,
    örtük olarak değeriyle aktarılır. Aşağıdaki örnekte
    <var class="varname">$fn1</var> ve <var class="varname">$fn2</var> işlevleri aynı
    şekilde davranır.
   </p>

   <p class="para">
    <div class="example" id="example-1">
     <p><strong>Örnek 1 - Ok işlevleri otomatik olarak değişkenleri üst etki alanından
    daima değerleriyle alır</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$y </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$fn1 </span><span style="color: #007700">= fn(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$x </span><span style="color: #007700">+ </span><span style="color: #0000BB">$y</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// $y bağımsız değişkenini değeriyle kullanmaya eşdeğerdir:<br /></span><span style="color: #0000BB">$fn2 </span><span style="color: #007700">= function (</span><span style="color: #0000BB">$x</span><span style="color: #007700">) use (</span><span style="color: #0000BB">$y</span><span style="color: #007700">) {<br />    return </span><span style="color: #0000BB">$x </span><span style="color: #007700">+ </span><span style="color: #0000BB">$y</span><span style="color: #007700">;<br />};<br /><br /></span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$fn1</span><span style="color: #007700">(</span><span style="color: #0000BB">3</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
4
</pre></div>
      </div>
    </div>
   </p>
   <p class="simpara">
    Aşağıdaki örnek, ok işlevleri iç içe kullanılsa da çalışır:
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <p><strong>Örnek 2 - Ok işlevleri otomatik olarak değişkenleri iç içe olsalar bile
       üst etki alanından daima değerleriyle alır</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$z </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$fn </span><span style="color: #007700">= fn(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; fn(</span><span style="color: #0000BB">$y</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$x </span><span style="color: #007700">* </span><span style="color: #0000BB">$y </span><span style="color: #007700">+ </span><span style="color: #0000BB">$z</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// 51 çıktılanır<br /></span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$fn</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">)(</span><span style="color: #0000BB">10</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="simpara">
    Anonim işlevlere benzer olarak, ok işlevleri sözdizimi de, bağımsız değişken ve
    dönüş türleri dahil, öntanımlı değerler, değişken sayıda bağımsız değişkenler,
    gönderimli aktarım ve dönüşler gibi rasgele işlev imzalarına da izin
    verir. Aşağıdaki ok işlevlerinin tamamı geçerli örneklerdir:
   </p>
   <p class="para">
    <div class="example" id="example-3">
     <p><strong>Örnek 3 - Ok işlevi örnekleri</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">fn(array </span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />static fn(</span><span style="color: #0000BB">$x</span><span style="color: #007700">): </span><span style="color: #0000BB">int </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />fn(</span><span style="color: #0000BB">$x </span><span style="color: #007700">= </span><span style="color: #0000BB">42</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />fn(&amp;</span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />fn&amp;(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />fn(</span><span style="color: #0000BB">$x</span><span style="color: #007700">, ...</span><span style="color: #0000BB">$rest</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$rest</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="simpara">
    Ok işlevleri değişken bağlamını değeriyle kullanır. Bu kabaca, ok işlevi
    içinde kullanılan her <var class="varname">$x</var> değişkeni için bir
    <code class="code">use($x)</code> çalıştırmaya eşdeğerdir.
    Değişken bağlamını değeriyle kullanmaktan kasıt, dış etki alanındaki
    herhangi bir değerin değiştirilmesinin mümkün olmayacağıdır.
    Değişken bağlamını gönderimiyle kullanmak için
    <a href="functions.anonymous.php" class="link">anonim işlevler</a>
    kullanılabilir.
   </p>
   <p class="para">
    <div class="example" id="example-4">
     <p><strong>Örnek 4 - Dış etki alanındaki değerler ok işlevleri kullanılarak
      değiştirilemez</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$x </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$fn </span><span style="color: #007700">= fn() =&gt; </span><span style="color: #0000BB">$x</span><span style="color: #007700">++; </span><span style="color: #FF8000">// Etkisiz<br /></span><span style="color: #0000BB">$fn</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$x</span><span style="color: #007700">);  </span><span style="color: #FF8000">// 1 çıktılanır<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>

   <div class="sect2">
    <h3 class="title">Sürüm Bilgisi</h3>
    <p class="para">
     <table class="doctable informaltable">
      
       <thead>
        <tr>
         <th>Sürüm: </th>
         <th>Açıklama</th>
        </tr>

       </thead>

       <tbody class="tbody">
        <tr>
         <td>7.4.0</td>
         <td>
          Ok işlevleri kullanılabilir oldu.
         </td>
        </tr>

       </tbody>
      
     </table>

    </p>
   </div>

   <div class="sect2">
    <h3 class="title">Notlar</h3>
    <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
     <span class="simpara">
      Bir ok işlevi içinden <span class="function"><a href="function.func-num-args.php" class="function">func_num_args()</a></span>,
      <span class="function"><a href="function.func-get-arg.php" class="function">func_get_arg()</a></span> ve <span class="function"><a href="function.func-get-args.php" class="function">func_get_args()</a></span>
      kullanmak mümkündür.
     </span>
    </p></blockquote>
   </div>
  </div><?php manual_footer($setup); ?>