1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 23:32:06 +01:00
Files
2024-09-05 17:21:38 +03:00

172 lines
5.6 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 78d17c25eeecc78cb7098b1a01d42391e36af2c1 Maintainer: nilgun Status: ready -->
<refentry xml:id="function.eval" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>eval</refname>
<refpurpose>Bir dizgeyi bir PHP kodu olarak yorumlar</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>eval</methodname>
<methodparam><type>string</type><parameter>kod_dizgesi</parameter></methodparam>
</methodsynopsis>
<para>
<parameter>kod_dizgesi</parameter> ile belirtilen dizgeyi bir PHP kodu
olarak yorumlar.
</para>
<para>
Değerlendirilen kod, <function>eval</function> çağrısının gerçekleştiği
satırın <link linkend="language.variables.scope">değişken etki alanını</link>
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 <link linkend="function.include">dahil edilen</link>
dosyaymış gibi ele alır.
</para>
<caution>
<para>
<function>eval</function> 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.
</para>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>kod_dizgesi</parameter></term>
<listitem>
<para>
Yorumlanacak PHP kodlarını içeren dizge.
</para>
<para>
Dizge içindeki bir <literal>return</literal> deyimi dizgenin
yorumlanmasını, anında durdurur.
</para>
<para>
Kod, PHP açılış ve kapanış
<link linkend="language.basic-syntax.phpmode">PHP etiketleri</link> ile
sarmalanmaMAlıdır, yani
<literal>'&lt;?php echo "Merhaba!"; ?&gt;'</literal> dizgesi yerine
<literal>'echo "Merhaba!";'</literal> dizgesi aktarılmalıdır. Uygun PHP
etiketlerini kullanarak PHP kipinden çıkmak ve yeniden girmek hala
mümkündür, örn. <literal>'echo "PHP kipindeyiz!"; ?&gt;HTML kipindeyiz!
&lt;?php echo "Tekrar PHP kipindeyiz!";'</literal>.
</para>
<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 <literal>'echo "Merhaba!"'</literal>
bir ayrıştırma hatasına sebep olurken,
<literal>'echo "Merhaba!";'</literal> çalışacaktır.
</para>
<para>
Bir <literal>return</literal> deyimi kodun yorumlanmasını derhal
sonlandıracaktır.
</para>
<para>
Kod, <function>eval</function> işlevini çağıran kodun etki alanında
çalıştırılacaktır. Bu nedenle <function>eval</function> ç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.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Kod dizgesi içinde bir <literal>return</literal> bulunmadıkça
<function>eval</function> daima &null; döndürür. <literal>return</literal>
ile bir değer döndürülmesi durumunda bu değeri döndürür. Belirtilen dizgede
bir çözümleme hatası saptanırsa <function>eval</function> PHP 7 öncesinde
&false; döndürüp çalışma dosyadaki sonraki deyimden normal olarak devam
eder; PHP 7 ve sonrasında ise <classname>ParseError</classname> istisnası
oluşur. <function>eval</function> işlevinin yorumladığı kodlardaki bir
hatayı <function>set_error_handler</function> kullanarak döndürmek mümkün
değildir.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>eval</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$dizge = 'Gülhane';
$isim = 'çınar';
$metin = 'Burası $dizge parkı ve ben bir $isim ağacıyım.';
echo $metin. "\n";
eval("\$metin = \"$metin\";");
echo $metin. "\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Burası $dizge parkı ve ben bir $isim ağacıyım.
Burası Gülhane parkı ve ben bir çınar ağacıyım.
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.language-construct;
&tip.ob-capture;
<note>
<para>
Yorumlanan kodda ölümcül bir hata varsa betiğin tamamı durdurulur.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>call_user_func</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->