<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.operators.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.operators.functional.php',
    1 => 'İşlevsel &Ouml;ğeler',
    2 => '&Ccedil;ağrılabilir &Ouml;ğe İşle&ccedil;leri',
  ),
  'up' => 
  array (
    0 => 'language.operators.php',
    1 => 'İşle&ccedil;ler',
  ),
  'prev' => 
  array (
    0 => 'language.operators.type.php',
    1 => 'T&uuml;r',
  ),
  'next' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Denetim Yapıları',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/operators/functional.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.operators.functional" class="sect1">
 <h2 class="title">Çağrılabilir Öğe İşleçleri</h2>
 
 <p class="para">
  PHP 8.5 ve sonraki sürümler, doğrudan çağrılabilir öğeler üzerinde çalışan
  bir işleci destekler. <code class="literal">|&gt;</code> işleci veya &quot;boru&quot;, sağ
  tarafta tek bağımsız değişkenli çağrılabilir bir öğeyi kabul eder ve sol
  taraftaki değeri ona aktararak çağrılabilir öğenin sonucunu değerlendirir.
  Sağ taraftaki çağrılabilir öğe, geçerli herhangi bir PHP çağrılabilir öğesi
  olabilir: bir <span class="classname"><a href="class.closure.php" class="classname">Closure</a></span>,
  <a href="functions.first_class_callable_syntax.php" class="link">birinci sınıf
  çağrılabilir</a> bir öğe, <a href="language.oop5.magic.php#object.invoke" class="link">__invoke()</a>
  örnekleyen bir nesne vb.
 </p>
 <p class="para">
  Bu, aşağıdaki iki satırın mantıksal olarak eşdeğer olduğu anlamına gelir.
  <div class="example" id="example-1">
   <p><strong>Örnek 1 - <code class="literal">|&gt;</code> Kullanımı</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$result </span><span style="color: #007700">= </span><span style="color: #DD0000">"Merhaba Dünya" </span><span style="color: #007700">|&gt; </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(...);<br />echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(</span><span style="color: #DD0000">"Merhaba Dünya"</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</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>
14
14
</pre></div>
   </div>
  </div>
 </p>
 <p class="para">
  Tek bir çağrı için pek kullanışlı olmasa da, birden fazla çağrı birbirine
  zincirlendiğinde kullanışlı hale gelir. Yani, aşağıdaki iki kod parçası
  mantıksal olarak eşdeğerdir:
  <div class="example" id="example-2">
   <p><strong>Örnek 2 |&gt; çağrılarını zincirleme</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$result </span><span style="color: #007700">= </span><span style="color: #DD0000">"PHP Rocks"<br />    </span><span style="color: #007700">|&gt; </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(...)<br />    |&gt; </span><span style="color: #0000BB">str_split</span><span style="color: #007700">(...)<br />    |&gt; (fn(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">array_map</span><span style="color: #007700">(</span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(...), </span><span style="color: #0000BB">$x</span><span style="color: #007700">))<br />    |&gt; (fn(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">array_filter</span><span style="color: #007700">(</span><span style="color: #0000BB">$x</span><span style="color: #007700">, fn(</span><span style="color: #0000BB">$v</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$v </span><span style="color: #007700">!= </span><span style="color: #DD0000">'O'</span><span style="color: #007700">))<br />;<br />echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$temp </span><span style="color: #007700">= </span><span style="color: #DD0000">"PHP Rocks"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$temp </span><span style="color: #007700">= </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$temp</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$temp </span><span style="color: #007700">= </span><span style="color: #0000BB">str_split</span><span style="color: #007700">(</span><span style="color: #0000BB">$temp</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$temp </span><span style="color: #007700">= </span><span style="color: #0000BB">array_map</span><span style="color: #007700">(</span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(...), </span><span style="color: #0000BB">$temp</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$temp </span><span style="color: #007700">= </span><span style="color: #0000BB">array_filter</span><span style="color: #007700">(</span><span style="color: #0000BB">$temp</span><span style="color: #007700">, fn(</span><span style="color: #0000BB">$v</span><span style="color: #007700">) =&gt; </span><span style="color: #0000BB">$v </span><span style="color: #007700">!= </span><span style="color: #DD0000">'O'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$temp</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</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>
Array
(
    [0] =&gt; P
    [1] =&gt; H
    [2] =&gt; P
    [3] =&gt;
    [4] =&gt; R
    [6] =&gt; C
    [7] =&gt; K
    [8] =&gt; S
)
Array
(
    [0] =&gt; P
    [1] =&gt; H
    [2] =&gt; P
    [3] =&gt;
    [4] =&gt; R
    [6] =&gt; C
    [7] =&gt; K
    [8] =&gt; S
)
</pre></div>
   </div>
  </div>
 </p>
 <p class="para">
  Borunun sol tarafı herhangi bir değer veya ifade olabilir. Sağ taraf, tek
  bir bağımsız değişken alan geçerli bir PHP çağrılabilir öğesi veya böyle
  bir çağrılabilir öğe olarak değerlendirilen herhangi bir ifade olabilir.
  Birden fazla zorunlu bağımsız değişkeni olan işlevlere izin verilmez ve
  işlev yetersiz bağımsız değişkenlerle normal şekilde çağrılmış gibi
  başarısız olur. Başvuru olarak değişken alan işlevlere izin verilmez. Sağ
  taraf geçerli bir çağrılabilir öğe olarak değerlendirilmezse hata oluşur.
 </p>
 <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
  <p class="para">
   Sözdizimi belirsizliğini önlemek için, yukarıdaki örneklerde olduğu gibi,
   bir boru işleciyle kullanıldığında <a href="functions.arrow.php" class="link">ok
   işlevlerinin</a> yaylı ayraç içine alınması GEREKTİĞİ unutulmamalıdır.
   Bunu yapmamak, ölümcül bir hataya yol açar.
  </p>
 </p></blockquote>

 <div class="sect2">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="classname"><a href="class.closure.php" class="classname">Closure</a></span></li>
   </ul>
  </p>
 </div>
</div><?php manual_footer($setup); ?>