mirror of
https://github.com/php/doc-tr.git
synced 2026-03-24 23:32:06 +01:00
172 lines
5.6 KiB
XML
172 lines
5.6 KiB
XML
<?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>'<?php echo "Merhaba!"; ?>'</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!"; ?>HTML kipindeyiz!
|
||
<?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;
|
||
|
||
¬e.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
|
||
-->
|