<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.misc.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.eval.php',
    1 => 'eval',
    2 => 'Bir dizgeyi bir PHP kodu olarak yorumlar',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => '&Ccedil;eşitli İşlevler',
  ),
  'prev' => 
  array (
    0 => 'function.die.php',
    1 => 'die',
  ),
  'next' => 
  array (
    0 => 'function.exit.php',
    1 => 'exit',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/misc/functions/eval.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.eval" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">eval</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">eval</span> &mdash; <span class="dc-title">Bir dizgeyi bir PHP kodu olarak yorumlar</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.eval-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>eval</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$kod_dizgesi</code></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>

  <p class="para rdfs-comment">
   <code class="parameter">kod_dizgesi</code> ile belirtilen dizgeyi bir PHP kodu
   olarak yorumlar.
  </p>
  <p class="para">
   Değerlendirilen kod, <span class="function"><strong>eval()</strong></span> çağrısının gerçekleştiği
   satırın <a href="language.variables.scope.php" class="link">değişken etki alanını</a>
   devralır. Bu satırda bulunan tüm değişkenler, değerlendirilen kodda
   okunabilir ve değiştirilebilir. Ancak, tanımlanan tüm işlevler ve sınıflar
   genel isim alanında tanımlanacaktır. Başka bir deyişle, derleyici
   değerlendirilen kodu ayrı bir <a href="function.include.php" class="link">dahil edilen</a>
   dosyaymış gibi ele alır.
  </p>
  <div class="caution"><strong class="caution">Dikkat</strong>
   <p class="para">
    <span class="function"><strong>eval()</strong></span> dil yapısı çok tehlikelidir çünkü keyfi PHP kodunun
    çalıştırılmasına izin verir. Bu nedenle kullanımı önerilmez. Bu yapıyı
    kullanmaktan başka bir seçeneğin olmadığına dikkatlice karar verilirse,
    önceden düzgün bir şekilde doğrulamadan kullanıcı tarafından sağlanan
    herhangi bir veriyi bu işleve aktarmamaya özellikle dikkat edilmelidir.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.eval-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">kod_dizgesi</code></dt>
     <dd>
      <p class="para">
       Yorumlanacak PHP kodlarını içeren dizge.
      </p>
      <p class="para">
       Dizge içindeki bir <code class="literal">return</code> deyimi dizgenin
       yorumlanmasını, anında durdurur.
      </p>
      <p class="para">
       Kod, PHP açılış ve kapanış
       <a href="language.basic-syntax.phpmode.php" class="link">PHP etiketleri</a> ile
       sarmalanmaMAlıdır, yani
       <code class="literal">&#039;&lt;?php echo &quot;Merhaba!&quot;; ?&gt;&#039;</code> dizgesi yerine
       <code class="literal">&#039;echo &quot;Merhaba!&quot;;&#039;</code> dizgesi aktarılmalıdır. Uygun PHP
       etiketlerini kullanarak PHP kipinden çıkmak ve yeniden girmek hala
       mümkündür, örn. <code class="literal">&#039;echo &quot;PHP kipindeyiz!&quot;; ?&gt;HTML kipindeyiz!
       &lt;?php echo &quot;Tekrar PHP kipindeyiz!&quot;;&#039;</code>.
      </p>
      <p class="para">
       Bunun dışında aktarılan kod geçerli PHP kodu olmalıdır. Bu, tüm
       ifadelerin noktalı virgül kullanılarak uygun şekilde sonlandırılması
       gerektiği anlamına gelir. Örneğin <code class="literal">&#039;echo &quot;Merhaba!&quot;&#039;</code>
       bir ayrıştırma hatasına sebep olurken,
       <code class="literal">&#039;echo &quot;Merhaba!&quot;;&#039;</code> çalışacaktır.
      </p>
      <p class="para">
       Bir <code class="literal">return</code> deyimi kodun yorumlanmasını derhal
       sonlandıracaktır.
      </p>
      <p class="para">
       Kod, <span class="function"><strong>eval()</strong></span> işlevini çağıran kodun etki alanında
       çalıştırılacaktır. Bu nedenle <span class="function"><strong>eval()</strong></span> çağrısında
       tanımlanan veya değiştirilen tüm değişkenler, işlev sonlandırıldıktan
       sonra görünür kalacaktır.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.eval-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   Kod dizgesi içinde bir <code class="literal">return</code>  bulunmadıkça
   <span class="function"><strong>eval()</strong></span> daima <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> döndürür. <code class="literal">return</code>
   ile bir değer döndürülmesi durumunda bu değeri döndürür. Belirtilen dizgede
   bir çözümleme hatası saptanırsa <span class="function"><strong>eval()</strong></span> PHP 7 öncesinde
   <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> döndürüp çalışma dosyadaki sonraki deyimden normal olarak devam
   eder; PHP 7 ve sonrasında ise <span class="classname"><a href="class.parseerror.php" class="classname">ParseError</a></span> istisnası
   oluşur. <span class="function"><strong>eval()</strong></span> işlevinin yorumladığı kodlardaki bir
   hatayı <span class="function"><a href="function.set-error-handler.php" class="function">set_error_handler()</a></span> kullanarak döndürmek mümkün
   değildir.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.eval-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <span class="function"><strong>eval()</strong></span> örneği</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$dizge </span><span style="color: #007700">= </span><span style="color: #DD0000">'Gülhane'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$isim </span><span style="color: #007700">= </span><span style="color: #DD0000">'çınar'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$metin </span><span style="color: #007700">= </span><span style="color: #DD0000">'Burası $dizge parkı ve ben bir $isim ağacıyım.'</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$metin</span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />eval(</span><span style="color: #DD0000">"\$metin = \"</span><span style="color: #0000BB">$metin</span><span style="color: #DD0000">\";"</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$metin</span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</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="examplescode"><pre class="examplescode">Burası $dizge parkı ve ben bir $isim ağacıyım.
Burası Gülhane parkı ve ben bir çınar ağacıyım.</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.eval-notes">
  <h3 class="title">Notlar</h3>

  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
<span class="simpara">Bu bir işlev değil, dil oluşumu olduğundan
<a href="functions.variable-functions.php" class="link">değişken işlevler</a> veya
<a href="functions.arguments.php#functions.named-arguments" class="link">isimli bağımsız değişkenler</a>
kullanılarak çağrılamaz.</span></p></blockquote>

  <div class="tip"><strong class="tip">İpucu</strong>
<p class="simpara">Sonuçlarını doğrudan tarayıcıya
çıktılayan her şey gibi, <a href="book.outcontrol.php" class="link">çıktı denetleme
işlevleri</a> bu işlevin de çıktısını yakalamak ve (örneğin)
<span class="type"><a href="language.types.string.php" class="type string">string</a></span> türünde saklamak için kullanılabilir.</p></div>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
    Yorumlanan kodda ölümcül bir hata varsa betiğin tamamı durdurulur.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.eval-seealso">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.call-user-func.php" class="function" rel="rdfs-seeAlso">call_user_func()</a> - İlk bağımsız değişkende belirtilen kullanıcı işlevini &ccedil;ağırır</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>