cvs: phpdoc-fa /language references.xml
| From: | Pedram Salehpoor | Date: | Fri, 20 Jun 2008 19:05:38 +0000 |
| Subject: | cvs: phpdoc-fa /language references.xml | ||
| Groups: | php.doc.fa | ||
| Request: | Send a blank email to doc-fa+get-21@lists.php.net to get a copy of this message | ||
psalehpoor Fri Jun 20 19:05:38 2008 UTC
Added files:
/phpdoc-fa/language references.xml
Log:
tranlated to persian
http://cvs.php.net/viewvc.cgi/phpdoc-fa/language/references.xml?view=markup&rev=1.1 Index: phpdoc-fa/language/references.xml +++ phpdoc-fa/language/references.xml <?xml version="1.0" encoding="utf-8"?> <!-- EN-Revision: 1.50 Maintainer: pedram Status: ready --> <!-- $Revision: 1.1 $ --> <chapter xml:id="language.references" xmlns="http://docbook.org/ns/docbook"> <title>٠رجعâÙØ§Û ØªÙØ¶ÛØ Ø¯Ø§Ø¯Ù Ø´Ø¯Ù</title> <sect1 xml:id="language.references.whatare"> <title>٠رجعâÙØ§ ÚÙâÚÛØ² ÙØ³ØªÙد</title> <simpara> ٠رجعâÙØ§ در PHP ÙØ³ÛÙÙâØ§Û Ø¨Ø±Ø§Û Ø¯Ø³ØªÛØ§Ø¨Û Ø¨Ù Ù ØØªÙØ§Û ÛÚ© Ù ØªØºÛØ± با ÙØ§Ù âÙØ§Û ٠ختÙ٠است. Ù٠اÙÙØ¯ اشارÙâÚ¯Ø±ÙØ§ در C ÙÛØ³ØªÙد; Ø¨Ù Ø¬Ø§Û Ø¢Ù ÙÙ Ø§Ø¯Û Ø¨Ø±Ø§Û Ø¬Ø§ÛگزÛÙÛ Ø¬Ø¯Ø§ÙÙ ÙØ³ØªÙد. ØªÙØ¬Ù Ú©ÙÛØ¯ در PHP ÙØ§Ù Ù ØªØºÛØ± Ù Ù ØØªÙØ§Û Ù ØªØºÛØ± د٠٠ÙÙÙÙ Ù ØªÙØ§Ùت ÙØ³ØªÙد ٠٠٠ک٠است ÛÚ© Ù ØØªÙا Ø¯Ø§Ø±Ø§Û ÚÙØ¯ÛÙ ÙØ§Ù باشد. ÙØ²Ø¯ÛÚ©âØªØ±ÛÙ Ù ÙÙÙ٠در اÛ٠بار٠٠ÙÙÙÙ ÙØ§ÛÙ Ù ÙØ§Ù ÙØ§Û٠در ÛÙÙÛکس است Ú©Ù ÙØ§Ù Ù ØªØºÛØ±Ùا Ù٠اÙÙØ¯ ÙØ§Ù Ø¯Ø§ÛØ±Ú©ØªÙرÛâÙØ§ ÙØ³ØªÙد Ù Ù ØØªÙØ§Û Ù ØªØºÛØ±Ùا ÙÙ Ø§Ù Ø®ÙØ¯ ÙØ§ÛÙ ÙØ³ØªÙد. ٠رجعâÙØ§ Ù٠اÙÙØ¯ ÙÛÙÚ© سخت در ÛÙÙÛکس ÙØ³ØªÙد. </simpara> </sect1> <sect1 xml:id="language.references.whatdo"> <title>٠رجعâÙØ§ ÚÙ Ù ÛâÚ©ÙÙØ¯</title> <para> ٠رجعâÙØ§Û PHP ب٠ش٠ا اجاز٠٠ÛâØ¯ÙÙØ¯ تا Ø¯Ù Ù ØªØºÛØ± ب٠ÛÚ© Ù ØØªÙا اشار٠Ù٠اÛÙØ¯. ب٠اÛÙ Ù Ø¹ÙØ§ ک٠ز٠اÙÛ Ú©Ù Ø´Ù Ø§: <informalexample> <programlisting role="php"> <![CDATA[ <?php $a =& $b; ?> ]]> </programlisting> </informalexample> ب٠اÛÙ Ù Ø¹ÙØ§Ø³Øª Ú©Ù <varname>$a</varname> Ù <varname>$b</varname> اشار٠ب٠ÛÚ© Ù ØØªÙا Ø¯Ø§Ø±ÙØ¯. <note> <para> <varname>$a</varname> Ù <varname>$b</varname> در اÛÙØ¬Ø§ Ú©Ø§Ù ÙØ§ برابر ÙØ³ØªÙد Ù <varname>$a</varname> ب٠<varname>$b</varname> ÛØ§ برعکس اشار٠ÙÙ ÛâÙÙ Ø§ÛØ¯ <varname>$a</varname> Ù <varname>$b</varname> ب٠ÛÚ© Ù ØÙ اشار٠٠ÛâÙ٠اÛÙØ¯. </para> </note> </para> <note> <para> اگر آراÛ٠ب٠Ù٠را٠٠رجع Ú©Ù¾Û Ø´ÙØ¯ Ù ÙØ¯Ø§Ø± Ø¢Ù Ø¯ÚØ§Ø± تغÛÛØ± ٠رجع ÙØ®ÙاÙÙØ¯ شد. اÛÙ Ù ÙØ±Ø¯ Ø¨Ø±Ø§Û Ø¢Ø±Ø§ÛÙâÙØ§Û Ø§ÙØªÙاÙÛ Ø§Ø² طرÛÙ Ù ÙØ¯Ø§Ø± Ø¨Ù ØªÙØ§Ø¨Ø¹ ÙÛØ² درست است. </para> </note> <note> <para> اگر ش٠ا ÛÚ© ٠رجع ب٠ÛÚ© Ù ØªØºÛØ± تعرÛÙ ÙØ´Ø¯Ù بازگرداÙÛØ¯ ÛØ§ Ø§ÙØªÙا٠دÙÛØ¯ آ» Ù ØªØºÛØ± Ø³Ø§Ø®ØªÙ Ø®ÙØ§Ùد شد. <example> <title>Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجع Ù ØªØºÛØ± Ø³Ø§Ø®ØªÙ ÙØ´Ø¯Ù</title> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { } foo($a); // $a is "created" and assigned to null $b = array(); foo($b['b']); var_dump(array_key_exists('b', $b)); // bool(true) $c = new StdClass; foo($c->d); var_dump(property_exists($c, 'd')); // bool(true) ?> ]]> </programlisting> </example> </para> </note> <para> ÙÙ Ø§Ù Ø¯Ø³ØªÙØ±Ø§Øª را Ù ÛâØªÙØ§Ù Ø¨Ø±Ø§Û ØªÙØ§Ø¨Ø¹ Ø§Ø³ØªÙØ§Ø¯Ù کرد ک٠٠رجع باز Ù ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ ٠با ع٠Ùگر <literal>new</literal> (در PHP 4.0.4 Ù Ø¬Ø¯ÛØ¯ØªØ±): <informalexample> <programlisting role="php"> <![CDATA[ <?php $bar =& new fooclass(); $foo =& find_var($bar); ?> ]]> </programlisting> </informalexample> از ز٠ا٠PHP 5 <link linkend="language.oop5.basic.new">new</link> ٠رجع را Ø¨ØµÙØ±Øª Ø®ÙØ¯Ú©Ø§Ø± باز٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ù Ø§Ø³ØªÙØ§Ø¯Ù از <literal>=&</literal> در اÛÙ Ù ØªÙ ÙØ§Ù Ø·ÙÙØ¨ شد٠٠ÛÚ© Ù¾ÛØ§Ù Ø³Ø·Ø E_STRICT Ø§ÛØ¬Ø§Ø¯ Ù ÛâÙÙ Ø§ÛØ¯. </para> <note> <para> Ø§Ø³ØªÙØ§Ø¯Ù Ùکرد٠از ع٠Ùگر <literal>&</literal> operator ÛÚ© Ú©Ù¾Û Ø§Ø² Ø´Û Ø§ÛØ¬Ø§Ø¯ Ù ÛâÙÙ Ø§ÛØ¯. اگر ش٠ا از <literal>$this</literal> در Ú©ÙØ§Ø³ Ø§Ø³ØªÙØ§Ø¯Ù Ù٠اÛÛØ¯ بر رÙÛ ÙÙ ÙÙÙ ÙØ¹ÙÛ Ø¹Ù Ù Ø®ÙØ§Ùد کرد. Ø§ÙØªØµØ§Ø¨ بدÙÙ <literal>&</literal> ÙÙ ÙÙ٠را Ú©Ù¾Û Ù ÛâÚ©ÙØ¯ (ب٠عÙÙØ§Ù ٠ثا٠شÛ) Ù <literal>$this</literal> بر رÙÛ Ú©Ù¾Û Ø¹Ù Ù Ø®ÙØ§Ùد کرد Ú©Ù ÙÙ ÛØ´Ù Ù Ø·ÙÙØ¨ ÙÛØ³Øª. ٠ع٠ÙÙØ§ ش٠ا ÛÚ© ÙÙ ÙÙÙ Ø¨Ø±Ø§Û Ú©Ø§Ø± کرد٠٠ÛâØ®ÙØ§ÙÛØ¯ تا Ù ÛØ²Ø§Ù ØØ§Ùظ٠٠صرÙÛ Ù Ù Ùکرد Ù Ø·ÙÙØ¨ باشد. </para> <para> در ØØ§ÙÛ Ú©Ù Ø´Ù Ø§ Ù ÛâØªÙØ§ÙÛØ¯ از ع٠Ùگر <literal>@</literal> Ø¨Ø±Ø§Û <emphasis>ساکت ÙÙ ÙØ¯Ù</emphasis> ÙØ± Ø®Ø²Ø§Û Ø³Ø§Ø²ÙØ¯Ù ÙÙÚ¯Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù از <literal>@new</literal> بکار Ø¨Ø±ÛØ¯ Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از عبارت <literal>&new</literal> Ø¹Ù Ù ÙØ®ÙØ§ÙØ¯ کرد. اÛÙ Ù ØØ¯ÙØ¯ÛØª در Zend Engine است Ù Ù ÙØ¬Ø± Ø¨Ù Ø®Ø·Ø§Û ØªØÙÛÙگر Ø®ÙØ§Ùد شد. </para> </note> <warning> <para> اگر ش٠ا ÛÚ© ٠رجع ب٠ÛÚ© Ù ØªØºÛØ± Ø§Ø¹ÙØ§Ù شد٠<literal>global</literal> در ÛÚ© تابع ÙØ³Ø¨Øª دÙÛØ¯ ٠رجع تÙÙØ§ در Ø¯Ø§Ø®Ù ØªØ§ÛØ¹ ÙØ§Ø¨Ù Ø§Ø¹ÙØ§Ù است. ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ از اÛÙ Ù ÙØ¶Ùع با Ø§Ø³ØªÙØ§Ø¯Ù از آراÛÙ <varname>$GLOBALS</varname> جÙÙÚ¯ÛØ±Û Ù٠اÛÛØ¯. <example> <title>ارجاع Ø¨Ù Ù ØªØºÛØ± Ø¬ÙØ§ÙÛ Ø¯Ø± تابع</title> <programlisting role="php"> <![CDATA[ <?php $var1 = "Example variable"; $var2 = ""; function global_references($use_globals) { global $var1, $var2; if (!$use_globals) { $var2 =& $var1; // visible only inside the function } else { $GLOBALS["var2"] =& $var1; // visible also in global context } } global_references(false); echo "var2 is set to '$var2'\n"; // var2 is set to '' global_references(true); echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable' ?> ]]> </programlisting> </example> ب٠<literal>global $var;</literal> Ø¨ØµÙØ±Øª ÛÚ© Ù ÛØ§Ùبر Ø¨Ø±Ø§Û <literal>$var =& $GLOBALS['var'];</literal> ØªÙØ¬Ù Ù٠اÛÛØ¯. Ù ÙØ³Ø¨Øª داد٠ÛÚ© ٠رجع دÛگر ب٠<literal>$var</literal> تÙÙØ§ ٠رجع Ù ØªØºÛØ± Ù ØÙÛ Ø±Ø§ تعÙÛØ´ Ù ÛâÙÙ Ø§ÛØ¯. </para> </warning> <note> <para> اگر ش٠ا ÛÚ© Ù ÙØ¯Ø§Ø± Ø¨Ù Ù ØªØºÛØ± با Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجعâÙØ§ در ÛÚ© عبارت <link linkend="control-structures.foreach">foreach</link> ÙØ³Ø¨Øª دÙÛØ¯ ٠رجعâÙØ§ Ù٠تغÛÛØ± Ù ÛâÛØ§Ø¨Ùد. <example> <title>٠رجعâÙØ§ ٠عبارت foreach</title> <programlisting role="php"> <![CDATA[ <?php $ref = 0; $row =& $ref; foreach (array(1, 2, 3) as $row) { // do something } echo $ref; // 3 - last element of the iterated array ?> ]]> </programlisting> </example> </para> </note> <para> دÙÙ Û٠کاربرد ٠رجعâÙØ§ Ø§ÙØªÙØ§Ù Ù ØªØºÛØ± با ارجاع است. اÛ٠کار با اشار٠ÛÚ© Ù ØªØºÛØ± Ù ØÙÛ Ø¯Ø± تابع Ù ÛÚ© Ù ØªØºÛØ± در ØÙØ²Ù ÙØ±Ø§Ø®ÙاÙÛ Ø§Ø±Ø¬Ø§Ø¹ ب٠ÛÚ© Ù ØØªÙا ٠٠ک٠است. ٠ثاÙ: <informalexample> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { $var++; } $a=5; foo($a); ?> ]]> </programlisting> </informalexample> <varname>$a</varname> را برابر با 6 ÙØ±Ø§Ø± Ø®ÙØ§Ùد داد. اÛÙ Ù ÙØ¯Ø§Ø± در تابع <varname>foo</varname> بدÙÛ٠اÛÙ Ú©Ù <varname>$var</varname> Ø¨Ù Ù ØØªÙاÛÛ Ûکسا٠با <varname>$a</varname> اشار٠٠ÛâÚ©ÙØ¯ ÙØ³Øª داد٠٠ÛâØ´ÙØ¯. See also more detailed explanations about <link linkend="language.references.pass">Ø§ÙØªÙا٠با ارجاع</link>. </para> <simpara> کاربرد سÙ٠٠رجع اÛ٠است Ú©Ù <link linkend="language.references.return">Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع</link>. </simpara> </sect1> <sect1 xml:id="language.references.arent"> <title>٠رجع ÚÙ ÚÛØ²Û ÙÛØ³Øª</title> <para> ÙÙ Ø§ÙØ·Ùر Ú©Ù Ù¾ÛØ´ از اÛÙ ÙÛØ² Ú¯ÙØªÙ شد ٠رجع اشارÙâگر ÙÛØ³Øª. اÛÙ Ø¨Ù Ù Ø¹ÙØ§Û عد٠کارکرد Ù ÙØ±Ø¯ Ù¾ÛØ´Ø¨ÛÙÛ Ø³Ø§Ø®Øª Ø²ÛØ± است: <informalexample> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { $var =& $GLOBALS["baz"]; } foo($bar); ?> ]]> </programlisting> </informalexample> </para> <simpara> Ø§ØªÙØ§ÙÛ Ú©Ù Ù ÛâØ§ÙØªØ¯ اÛ٠است Ú©Ù <varname>$var</varname> در <varname>foo</varname> در <varname>$bar</varname> ÙØ±Ø§Ø®ÙاÙÛ Ú©ÙÙØ¯Ù ٠تص٠شد٠ا٠ا Ø¯ÙØ¨Ø§Ø±Ù ب٠<varname>$GLOBALS["baz"]</varname> ٠تص٠٠Ûâگردد. راÙÛ Ø¨Ø±Ø§Û Ø§ØªØµØ§Ù <varname>$bar</varname> در ØÙØ²Ù ÙØ±Ø§Ø®ÙاÙÛ Ú©ÙÙØ¯Ù ب٠ÚÛØ² دÛگر با Ø§Ø³ØªÙØ§Ø¯Ù از ٠کاÙÛØ³Ù ارجاع ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯ با ØªÙØ¬Ù ب٠اÛÙ Ú©Ù <varname>$bar</varname> در تابع <varname>foo</varname> Ù ÙØ¬Ùد ÙÛØ³Øª (با <varname>$var</varname> ÙÙ Ø§ÛØ´ داد٠شد٠است ا٠ا <varname>$var</varname> ÙÙØ· Ù ØØªÙØ§Û Ù ØªØºÛØ± داشت٠٠جدÙÙ ÙØ±Ø§Ø®ÙاÙÛ ÙØ±Ø§Ø®ÙاÙÛ Ø§ØªØµØ§Ù ÙØ§Ù Ø¨Ù Ù ÙØ¯Ø§Ø± را در Ø®ÙØ¯ ÙØ¯Ø§Ø±Ø¯). ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ از <link linkend="language.references.return">Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠راجع</link> Ø¨Ø±Ø§Û Ø§Ø±Ø¬Ø§Ø¹ Ù ØªØºÛØ±ÙØ§Û Ø§ÙØªØ®Ø§Ø¨ شد٠در تابع Ø§Ø³ØªÙØ§Ø¯Ù Ù٠اÛÛØ¯. </simpara> </sect1> <sect1 xml:id="language.references.pass"> <title>Ø§ÙØªÙا٠با ٠رجع</title> <para> ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ Ù ØªØºÛØ± را با Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجع ب٠تابع Ø§ÙØªÙا٠دÙÛØ¯ تا آ٠تابع آرگÙ٠اÙâÙØ§Û Ø®ÙØ¯ را تغÛÛØ± دÙÙØ¯. Ø¯Ø³ØªÙØ±Ø§Øª Ø¨ØµÙØ±Øª Ø²ÛØ± است: <informalexample> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { $var++; } $a=5; foo($a); // $a is 6 here ?> ]]> </programlisting> </informalexample> ØªÙØ¬Ù Ù٠اÛÛØ¯ ÙØ´Ø§ÙÙٰاس از ٠رجع در ÙØ±Ø§Ø®ÙاÙÛ ØªØ§Ø¨Ø¹ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯ ٠تÙÙØ§ در تعرÛ٠تابع Ø¯ÛØ¯Ù Ù ÛâØ´ÙØ¯. تعرÛ٠تابع ب٠تÙÙØ§ÛÛ Ø¨Ø±Ø§Û Ø§ÙØªÙا٠با ٠رجع کاÙÛ Ø§Ø³Øª. در ÙØ³Ø®ÙâÙØ§Û Ø§Ø®ÛØ± PHP ش٠ا ÛÚ© ÙØ´Ø¯Ø§Ø± با Ù ØØªÙØ§Û "Ø²Ù Ø§Ù ÙØ±Ø§Ø®ÙاÙÛ Ø§ÙØªÙا٠با ٠رجع" ÙØ§Ù Ø·ÙÙØ¨ است ÙÙÚ¯Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù از & در <literal>foo(&$a);</literal> Ø¯Ø±ÛØ§Ùت Ù ÛâÚ©ÙÛØ¯. </para> <para> Ù ÙØ§Ø±Ø¯ Ø²ÛØ± ÙØ§Ø¯Ø± Ø¨Ù Ø§ÙØªÙا٠با Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجع است: <itemizedlist> <listitem> <simpara> Ù ØªØºÛØ± ٠اÙÙØ¯ <literal>foo($a)</literal> </simpara> </listitem> <listitem> <simpara> عبارات Ø¬Ø¯ÛØ¯ ٠اÙÙØ¯ <literal>foo(new foobar())</literal> </simpara> </listitem> <listitem> <para> ٠رجع Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ø´Ø¯Ù ØªÙØ³Ø· تابع ٠اÙÙØ¯: <informalexample> <programlisting role="php"> <![CDATA[ <?php function &bar() { $a = 5; return $a; } foo(bar()); ?> ]]> </programlisting> </informalexample> ØªÙØ¶ÛØØ§Øª دربار٠<link linkend="language.references.return">Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع</link> ببÛÙÛØ¯. </para> </listitem> </itemizedlist> </para> <para> عبارات دÛگر Ø¨Ø§ÛØ¯ Ø¨Ù ØµÙØ±Øª ٠رجع Ù ÙØªÙÙ ÙÚ¯Ø±Ø¯ÙØ¯ Ù ÙØªÛØ¬Ù ØºÛØ±Ù شخص است. ب٠عÙÙØ§Ù ٠ثا٠ÙÙ ÙÙÙ Ø²ÛØ± Ø§ÙØªÙا٠با ٠رجع ÙØ§Ø¯Ø±Ø³Øª است: <informalexample> <programlisting role="php"> <![CDATA[ <?php function bar() // Note the missing & { $a = 5; return $a; } foo(bar()); // Produces fatal error since PHP 5.0.5 foo($a = 5); // Expression, not variable foo(5); // Produces fatal error ?> ]]> </programlisting> </informalexample> اÛÙ ÙÛØ§Ø²Ù ÙØ¯ÛâÙØ§ Ø¨Ø±Ø§Û PHP 4.0.4 Ù Ø¬Ø¯ÛØ¯ØªØ± است. </para> </sect1> <sect1 xml:id="language.references.return"> <title>Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع</title> <para> Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از ÛÚ© تابع Ø¨Ø±Ø§Û ÛØ§ÙØªÙ Ù ØªØºÛØ± ٠تص٠ب٠٠رجع Ù ÙÛØ¯ است. Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع را Ø¨Ø±Ø§Û Ø§ÙØ²Ø§ÛØ´ ع٠Ùکرد Ù ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± ÙØ¯ÙÛØ¯ Ù ÙØªÙر Ø¨Ù Ø§ÙØ¯Ø§Ø²Ù کاÙÛ Ø¨Ø§ÙÙØ´ است ک٠آÙÙØ§ را بÙÛÙÙâØ³Ø§Ø²Û ÙÙ Ø§ÛØ¯. Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع تÙÙØ§ با ÛÚ© دÙÛÙ ÙÙÛ Ù ÙØ¬Ù Ø¨Ø§ÛØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯! Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع از اÛÙ Ø¯Ø³ØªÙØ± Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯: <informalexample> <programlisting role="php"> <![CDATA[ <?php class foo { public $value = 42; public function &getValue() { return $this->value; } } $obj = new foo; $myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42. $obj->value = 2; echo $myValue; // prints the new value of $obj->value, i.e. 2. ?> ]]> </programlisting> </informalexample> در اÛ٠٠ثا٠ÙÛÚÚ¯Û Ø´Û Ú©Ù ØªÙØ³Ø· تابع <varname>getValue</varname> Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù شد٠تعÛÛÙ Ú¯Ø´ØªÙ Ù Ú©Ù¾Û ÙÛÚ ØªØºÛÛØ±Û را Ø¯Ø±ÛØ§Ùت ÙÙÙ ÙØ¯Ù است Ú©Ù Ù٠اÙÙØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ùکرد٠از ساختار Ø¯Ø³ØªÙØ± ٠رجع است. </para> <note> <simpara> Ø¨Ø±Ø®ÙØ§Ù ارسا٠پارا٠تر ر اÛ٠جا ش٠ا Ø¨Ø§ÛØ¯ از <literal>&</literal> در ÙØ± د٠٠ØÙ - Ø¨Ø±Ø§Û ÙØ´Ø§Ù داد٠بازگشت با ٠رجع Ù ÙÙ Ú©Ù¾Û Ù Ø§ÙÙØ¯ ٠ع٠ÙÙ Ù Ø¨Ø±Ø§Û ÙØ´Ø§Ù Ø¯Ø§Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù از اتصا٠٠رجع Ù ÙÙ Ø§ÙØªØµØ§Ø¨ ٠ع٠ÙÙÛ Ø¨Ø§ÛØ¯ Ø¨Ø±Ø§Û <varname>$myValue</varname> Ø§ÙØ¬Ø§Ù Ø´ÙØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. </simpara> </note> <note> <simpara> اگر ش٠ا Ø¨Ø®ÙØ§ÙÛØ¯ ÛÚ© ٠رجع را از تابع با Ø¯Ø³ØªÙØ± Ø²ÛØ± بازگرداÙÛØ¯: <literal>return ($this->value);</literal> اÛÙ Ø¯Ø³ØªÙØ± Ù٠اÙÙØ¯ ØªÙØ§Ø´ ش٠ا Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§Ø¯Ù ÙØªÛج٠ÛÚ© <emphasis>عبارت</emphasis> <emphasis>Ø¹Ù Ù ÙØ®ÙØ§ÙØ¯ کرد</emphasis> Ù ÙÙ Ù ØªØºÛØ± با ٠رجع . ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ Ù ØªØºÛØ±ÙØ§Û Ù Ø±Ø¬Ø¹ را ÙÙØ· از ØªÙØ§Ø¨Ø¹ بازگرداÙÛØ¯ Ù ÙÙ ÚÛØ² دÛگر. Ø®Ø·Ø§Û <constant>E_NOTICE</constant> از ز٠ا٠PHP 4.4.0 Ù PHP 5.1.0 Ø¨Ø±Ø§Û Ú©Ø¯ÙØ§Û بازگرداÙÙØ¯Ù عبارت دÛÙØ§Ù ÛÚ© ÛØ§ ÙØªÛج٠ع٠Ùگر <literal>new</literal> Ø§ÛØ¬Ø§Ø¯ Ù Ûâگردد. </simpara> </note> </sect1> <sect1 xml:id="language.references.unset"> <title>ØºÛØ±ÙعاÙâØ³Ø§Ø²Û Ù Ø±Ø¬Ø¹âÙØ§</title> <para> ÙÙØªÛ ش٠ا ٠رجع را ØºÛØ±Ùعا٠٠ÛâØ³Ø§Ø²ÛØ¯ اتصا٠بÛÙ ÙØ§Ù Ù ØªØºÛØ± Ù Ù ØØªÙØ§Û Ø¢Ù Ø±Ø§ Ù ÛâØ´Ú©ÙÛØ¯. اÛÙ Ø¨Ù Ù Ø¹ÙØ§Û از بÛÙ Ø±ÙØªÙ Ù ØØªÙØ§Û Ù ØªØºÛØ± ÙÛØ³Øª . Ø¨Ø±Ø§Û Ù Ø«Ø§Ù: <informalexample> <programlisting role="php"> <![CDATA[ <?php $a = 1; $b =& $a; unset($a); ?> ]]> </programlisting> </informalexample> <varname>$b</varname> را ØºÛØ±Ùعا٠ÙÙ ÛâØ³Ø§Ø²Ø¯ تÙÙØ§ <varname>$a</varname>. </para> <simpara> Ø¯ÙØ¨Ø§Ø±Ù ٠٠ک٠است Ù ÙÛØ¯ باشد تا اÛÙ Ù ÙØ±Ø¯ را Ù٠اÙÙØ¯ ÛÙÙÛکس ØªØµÙØ± Ù٠اÛÛØ¯ Ú©Ù Ù Ø´Ø§Ø¨Ù ÙØ±Ø§Ø®ÙاÙÛ Ø¯Ø³ØªÙØ± <command>unlink</command> است. </simpara> </sect1> <sect1 xml:id="language.references.spot"> <title>تعÛÛÙ Ù ØÙ ٠رجعâÙØ§</title> <simpara> ساختار Ø¨Ø³ÛØ§Ø±Û از Ø¯Ø³ØªÙØ±Ø§Øª در PHP از طزÛ٠٠کاÙÛØ³Ù ٠رجع ساخت٠شدÙâØ§ÙØ¯ Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ Ø§ØªØµØ§Ù Ø¨Ø±Ø§Û Ø§Û٠ساختâÙØ§ ÙÛØ² Ø¨Ø±ÙØ±Ø§Ø± است. Ø¨Ø¹Ø¶Û Ø³Ø§Ø®ØªØ§Ø±ÙØ§ ٠اÙÙØ¯ Ø§ÙØªÙاÙâÙØ§ Ù Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع Ú©Ù Ø¨Ø§ÙØ§ ذکر شد. Ø³Ø§Ø®ØªØ§Ø±ÙØ§Û دÛÚ¯Ø±Û ÙÛØ² از ٠رجعâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÙÙ Ø§ÛØ¯: </simpara> <sect2 xml:id="references.global"> <title>٠رجعâÙØ§Û <literal>Ø¬ÙØ§ÙÛ</literal></title> <para> ÙÙØªÛ ش٠ا ÛÚ© Ù ØªØºÛØ± را <command>global $var</command> Ø§Ø¹ÙØ§Ù Ù ÛâÙ٠اÛÛØ¯ در ØÙÛÙØª ش٠ا ÛÚ© ٠رجع Ø¨Ø±Ø§Û Ù ØªØºÛØ± Ø¬ÙØ§ÙÛ Ø§ÛØ¬Ø§Ø¯ Ù ÛâÙ٠اÛÛØ¯. اÛ٠کار Ø¨Ù Ø´Ú©Ù Ø²ÛØ± است: <informalexample> <programlisting role="php"> <![CDATA[ <?php $var =& $GLOBALS["var"]; ?> ]]> </programlisting> </informalexample> </para> <simpara> Ø¨Ø±Ø§Û Ù Ø«Ø§Ù ØºÛØ±ÙعاÙâØ³Ø§Ø²Û <varname>$var</varname> Ù ØªØºÛØ± Ø¬ÙØ§ÙÛ Ø±Ø§ ØºÛØ±Ùعا٠ÙÙ ÛâØ³Ø§Ø²Ø¯. </simpara> </sect2> <sect2 xml:id="references.this"> <title><literal>$this</literal></title> <simpara> در ÛÚ© ٠تذ Ø´Û <varname>$this</varname> ÛÚ© ٠رجع Ø¨Ù ÙØ±Ø§Ø®ÙاÙÙØ¯Ù Ø´Û Ù ÛâØ¨Ø§Ø´Ø¯. </simpara> </sect2> </sect1> </chapter> <!-- 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:"../../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 -->
http://cvs.php.net/viewvc.cgi/phpdoc-fa/language/references.xml?view=markup&rev=1.1 Index: phpdoc-fa/language/references.xml +++ phpdoc-fa/language/references.xml <?xml version="1.0" encoding="utf-8"?> <!-- EN-Revision: 1.50 Maintainer: pedram Status: ready --> <!-- $Revision: 1.1 $ --> <chapter xml:id="language.references" xmlns="http://docbook.org/ns/docbook"> <title>٠رجعâÙØ§Û ØªÙØ¶ÛØ Ø¯Ø§Ø¯Ù Ø´Ø¯Ù</title> <sect1 xml:id="language.references.whatare"> <title>٠رجعâÙØ§ ÚÙâÚÛØ² ÙØ³ØªÙد</title> <simpara> ٠رجعâÙØ§ در PHP ÙØ³ÛÙÙâØ§Û Ø¨Ø±Ø§Û Ø¯Ø³ØªÛØ§Ø¨Û Ø¨Ù Ù ØØªÙØ§Û ÛÚ© Ù ØªØºÛØ± با ÙØ§Ù âÙØ§Û ٠ختÙ٠است. Ù٠اÙÙØ¯ اشارÙâÚ¯Ø±ÙØ§ در C ÙÛØ³ØªÙد; Ø¨Ù Ø¬Ø§Û Ø¢Ù ÙÙ Ø§Ø¯Û Ø¨Ø±Ø§Û Ø¬Ø§ÛگزÛÙÛ Ø¬Ø¯Ø§ÙÙ ÙØ³ØªÙد. ØªÙØ¬Ù Ú©ÙÛØ¯ در PHP ÙØ§Ù Ù ØªØºÛØ± Ù Ù ØØªÙØ§Û Ù ØªØºÛØ± د٠٠ÙÙÙÙ Ù ØªÙØ§Ùت ÙØ³ØªÙد ٠٠٠ک٠است ÛÚ© Ù ØØªÙا Ø¯Ø§Ø±Ø§Û ÚÙØ¯ÛÙ ÙØ§Ù باشد. ÙØ²Ø¯ÛÚ©âØªØ±ÛÙ Ù ÙÙÙ٠در اÛ٠بار٠٠ÙÙÙÙ ÙØ§ÛÙ Ù ÙØ§Ù ÙØ§Û٠در ÛÙÙÛکس است Ú©Ù ÙØ§Ù Ù ØªØºÛØ±Ùا Ù٠اÙÙØ¯ ÙØ§Ù Ø¯Ø§ÛØ±Ú©ØªÙرÛâÙØ§ ÙØ³ØªÙد Ù Ù ØØªÙØ§Û Ù ØªØºÛØ±Ùا ÙÙ Ø§Ù Ø®ÙØ¯ ÙØ§ÛÙ ÙØ³ØªÙد. ٠رجعâÙØ§ Ù٠اÙÙØ¯ ÙÛÙÚ© سخت در ÛÙÙÛکس ÙØ³ØªÙد. </simpara> </sect1> <sect1 xml:id="language.references.whatdo"> <title>٠رجعâÙØ§ ÚÙ Ù ÛâÚ©ÙÙØ¯</title> <para> ٠رجعâÙØ§Û PHP ب٠ش٠ا اجاز٠٠ÛâØ¯ÙÙØ¯ تا Ø¯Ù Ù ØªØºÛØ± ب٠ÛÚ© Ù ØØªÙا اشار٠Ù٠اÛÙØ¯. ب٠اÛÙ Ù Ø¹ÙØ§ ک٠ز٠اÙÛ Ú©Ù Ø´Ù Ø§: <informalexample> <programlisting role="php"> <![CDATA[ <?php $a =& $b; ?> ]]> </programlisting> </informalexample> ب٠اÛÙ Ù Ø¹ÙØ§Ø³Øª Ú©Ù <varname>$a</varname> Ù <varname>$b</varname> اشار٠ب٠ÛÚ© Ù ØØªÙا Ø¯Ø§Ø±ÙØ¯. <note> <para> <varname>$a</varname> Ù <varname>$b</varname> در اÛÙØ¬Ø§ Ú©Ø§Ù ÙØ§ برابر ÙØ³ØªÙد Ù <varname>$a</varname> ب٠<varname>$b</varname> ÛØ§ برعکس اشار٠ÙÙ ÛâÙÙ Ø§ÛØ¯ <varname>$a</varname> Ù <varname>$b</varname> ب٠ÛÚ© Ù ØÙ اشار٠٠ÛâÙ٠اÛÙØ¯. </para> </note> </para> <note> <para> اگر آراÛ٠ب٠Ù٠را٠٠رجع Ú©Ù¾Û Ø´ÙØ¯ Ù ÙØ¯Ø§Ø± Ø¢Ù Ø¯ÚØ§Ø± تغÛÛØ± ٠رجع ÙØ®ÙاÙÙØ¯ شد. اÛÙ Ù ÙØ±Ø¯ Ø¨Ø±Ø§Û Ø¢Ø±Ø§ÛÙâÙØ§Û Ø§ÙØªÙاÙÛ Ø§Ø² طرÛÙ Ù ÙØ¯Ø§Ø± Ø¨Ù ØªÙØ§Ø¨Ø¹ ÙÛØ² درست است. </para> </note> <note> <para> اگر ش٠ا ÛÚ© ٠رجع ب٠ÛÚ© Ù ØªØºÛØ± تعرÛÙ ÙØ´Ø¯Ù بازگرداÙÛØ¯ ÛØ§ Ø§ÙØªÙا٠دÙÛØ¯ آ» Ù ØªØºÛØ± Ø³Ø§Ø®ØªÙ Ø®ÙØ§Ùد شد. <example> <title>Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجع Ù ØªØºÛØ± Ø³Ø§Ø®ØªÙ ÙØ´Ø¯Ù</title> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { } foo($a); // $a is "created" and assigned to null $b = array(); foo($b['b']); var_dump(array_key_exists('b', $b)); // bool(true) $c = new StdClass; foo($c->d); var_dump(property_exists($c, 'd')); // bool(true) ?> ]]> </programlisting> </example> </para> </note> <para> ÙÙ Ø§Ù Ø¯Ø³ØªÙØ±Ø§Øª را Ù ÛâØªÙØ§Ù Ø¨Ø±Ø§Û ØªÙØ§Ø¨Ø¹ Ø§Ø³ØªÙØ§Ø¯Ù کرد ک٠٠رجع باز Ù ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ ٠با ع٠Ùگر <literal>new</literal> (در PHP 4.0.4 Ù Ø¬Ø¯ÛØ¯ØªØ±): <informalexample> <programlisting role="php"> <![CDATA[ <?php $bar =& new fooclass(); $foo =& find_var($bar); ?> ]]> </programlisting> </informalexample> از ز٠ا٠PHP 5 <link linkend="language.oop5.basic.new">new</link> ٠رجع را Ø¨ØµÙØ±Øª Ø®ÙØ¯Ú©Ø§Ø± باز٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ù Ø§Ø³ØªÙØ§Ø¯Ù از <literal>=&</literal> در اÛÙ Ù ØªÙ ÙØ§Ù Ø·ÙÙØ¨ شد٠٠ÛÚ© Ù¾ÛØ§Ù Ø³Ø·Ø E_STRICT Ø§ÛØ¬Ø§Ø¯ Ù ÛâÙÙ Ø§ÛØ¯. </para> <note> <para> Ø§Ø³ØªÙØ§Ø¯Ù Ùکرد٠از ع٠Ùگر <literal>&</literal> operator ÛÚ© Ú©Ù¾Û Ø§Ø² Ø´Û Ø§ÛØ¬Ø§Ø¯ Ù ÛâÙÙ Ø§ÛØ¯. اگر ش٠ا از <literal>$this</literal> در Ú©ÙØ§Ø³ Ø§Ø³ØªÙØ§Ø¯Ù Ù٠اÛÛØ¯ بر رÙÛ ÙÙ ÙÙÙ ÙØ¹ÙÛ Ø¹Ù Ù Ø®ÙØ§Ùد کرد. Ø§ÙØªØµØ§Ø¨ بدÙÙ <literal>&</literal> ÙÙ ÙÙ٠را Ú©Ù¾Û Ù ÛâÚ©ÙØ¯ (ب٠عÙÙØ§Ù ٠ثا٠شÛ) Ù <literal>$this</literal> بر رÙÛ Ú©Ù¾Û Ø¹Ù Ù Ø®ÙØ§Ùد کرد Ú©Ù ÙÙ ÛØ´Ù Ù Ø·ÙÙØ¨ ÙÛØ³Øª. ٠ع٠ÙÙØ§ ش٠ا ÛÚ© ÙÙ ÙÙÙ Ø¨Ø±Ø§Û Ú©Ø§Ø± کرد٠٠ÛâØ®ÙØ§ÙÛØ¯ تا Ù ÛØ²Ø§Ù ØØ§Ùظ٠٠صرÙÛ Ù Ù Ùکرد Ù Ø·ÙÙØ¨ باشد. </para> <para> در ØØ§ÙÛ Ú©Ù Ø´Ù Ø§ Ù ÛâØªÙØ§ÙÛØ¯ از ع٠Ùگر <literal>@</literal> Ø¨Ø±Ø§Û <emphasis>ساکت ÙÙ ÙØ¯Ù</emphasis> ÙØ± Ø®Ø²Ø§Û Ø³Ø§Ø²ÙØ¯Ù ÙÙÚ¯Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù از <literal>@new</literal> بکار Ø¨Ø±ÛØ¯ Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از عبارت <literal>&new</literal> Ø¹Ù Ù ÙØ®ÙØ§ÙØ¯ کرد. اÛÙ Ù ØØ¯ÙØ¯ÛØª در Zend Engine است Ù Ù ÙØ¬Ø± Ø¨Ù Ø®Ø·Ø§Û ØªØÙÛÙگر Ø®ÙØ§Ùد شد. </para> </note> <warning> <para> اگر ش٠ا ÛÚ© ٠رجع ب٠ÛÚ© Ù ØªØºÛØ± Ø§Ø¹ÙØ§Ù شد٠<literal>global</literal> در ÛÚ© تابع ÙØ³Ø¨Øª دÙÛØ¯ ٠رجع تÙÙØ§ در Ø¯Ø§Ø®Ù ØªØ§ÛØ¹ ÙØ§Ø¨Ù Ø§Ø¹ÙØ§Ù است. ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ از اÛÙ Ù ÙØ¶Ùع با Ø§Ø³ØªÙØ§Ø¯Ù از آراÛÙ <varname>$GLOBALS</varname> جÙÙÚ¯ÛØ±Û Ù٠اÛÛØ¯. <example> <title>ارجاع Ø¨Ù Ù ØªØºÛØ± Ø¬ÙØ§ÙÛ Ø¯Ø± تابع</title> <programlisting role="php"> <![CDATA[ <?php $var1 = "Example variable"; $var2 = ""; function global_references($use_globals) { global $var1, $var2; if (!$use_globals) { $var2 =& $var1; // visible only inside the function } else { $GLOBALS["var2"] =& $var1; // visible also in global context } } global_references(false); echo "var2 is set to '$var2'\n"; // var2 is set to '' global_references(true); echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable' ?> ]]> </programlisting> </example> ب٠<literal>global $var;</literal> Ø¨ØµÙØ±Øª ÛÚ© Ù ÛØ§Ùبر Ø¨Ø±Ø§Û <literal>$var =& $GLOBALS['var'];</literal> ØªÙØ¬Ù Ù٠اÛÛØ¯. Ù ÙØ³Ø¨Øª داد٠ÛÚ© ٠رجع دÛگر ب٠<literal>$var</literal> تÙÙØ§ ٠رجع Ù ØªØºÛØ± Ù ØÙÛ Ø±Ø§ تعÙÛØ´ Ù ÛâÙÙ Ø§ÛØ¯. </para> </warning> <note> <para> اگر ش٠ا ÛÚ© Ù ÙØ¯Ø§Ø± Ø¨Ù Ù ØªØºÛØ± با Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجعâÙØ§ در ÛÚ© عبارت <link linkend="control-structures.foreach">foreach</link> ÙØ³Ø¨Øª دÙÛØ¯ ٠رجعâÙØ§ Ù٠تغÛÛØ± Ù ÛâÛØ§Ø¨Ùد. <example> <title>٠رجعâÙØ§ ٠عبارت foreach</title> <programlisting role="php"> <![CDATA[ <?php $ref = 0; $row =& $ref; foreach (array(1, 2, 3) as $row) { // do something } echo $ref; // 3 - last element of the iterated array ?> ]]> </programlisting> </example> </para> </note> <para> دÙÙ Û٠کاربرد ٠رجعâÙØ§ Ø§ÙØªÙØ§Ù Ù ØªØºÛØ± با ارجاع است. اÛ٠کار با اشار٠ÛÚ© Ù ØªØºÛØ± Ù ØÙÛ Ø¯Ø± تابع Ù ÛÚ© Ù ØªØºÛØ± در ØÙØ²Ù ÙØ±Ø§Ø®ÙاÙÛ Ø§Ø±Ø¬Ø§Ø¹ ب٠ÛÚ© Ù ØØªÙا ٠٠ک٠است. ٠ثاÙ: <informalexample> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { $var++; } $a=5; foo($a); ?> ]]> </programlisting> </informalexample> <varname>$a</varname> را برابر با 6 ÙØ±Ø§Ø± Ø®ÙØ§Ùد داد. اÛÙ Ù ÙØ¯Ø§Ø± در تابع <varname>foo</varname> بدÙÛ٠اÛÙ Ú©Ù <varname>$var</varname> Ø¨Ù Ù ØØªÙاÛÛ Ûکسا٠با <varname>$a</varname> اشار٠٠ÛâÚ©ÙØ¯ ÙØ³Øª داد٠٠ÛâØ´ÙØ¯. See also more detailed explanations about <link linkend="language.references.pass">Ø§ÙØªÙا٠با ارجاع</link>. </para> <simpara> کاربرد سÙ٠٠رجع اÛ٠است Ú©Ù <link linkend="language.references.return">Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع</link>. </simpara> </sect1> <sect1 xml:id="language.references.arent"> <title>٠رجع ÚÙ ÚÛØ²Û ÙÛØ³Øª</title> <para> ÙÙ Ø§ÙØ·Ùر Ú©Ù Ù¾ÛØ´ از اÛÙ ÙÛØ² Ú¯ÙØªÙ شد ٠رجع اشارÙâگر ÙÛØ³Øª. اÛÙ Ø¨Ù Ù Ø¹ÙØ§Û عد٠کارکرد Ù ÙØ±Ø¯ Ù¾ÛØ´Ø¨ÛÙÛ Ø³Ø§Ø®Øª Ø²ÛØ± است: <informalexample> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { $var =& $GLOBALS["baz"]; } foo($bar); ?> ]]> </programlisting> </informalexample> </para> <simpara> Ø§ØªÙØ§ÙÛ Ú©Ù Ù ÛâØ§ÙØªØ¯ اÛ٠است Ú©Ù <varname>$var</varname> در <varname>foo</varname> در <varname>$bar</varname> ÙØ±Ø§Ø®ÙاÙÛ Ú©ÙÙØ¯Ù ٠تص٠شد٠ا٠ا Ø¯ÙØ¨Ø§Ø±Ù ب٠<varname>$GLOBALS["baz"]</varname> ٠تص٠٠Ûâگردد. راÙÛ Ø¨Ø±Ø§Û Ø§ØªØµØ§Ù <varname>$bar</varname> در ØÙØ²Ù ÙØ±Ø§Ø®ÙاÙÛ Ú©ÙÙØ¯Ù ب٠ÚÛØ² دÛگر با Ø§Ø³ØªÙØ§Ø¯Ù از ٠کاÙÛØ³Ù ارجاع ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯ با ØªÙØ¬Ù ب٠اÛÙ Ú©Ù <varname>$bar</varname> در تابع <varname>foo</varname> Ù ÙØ¬Ùد ÙÛØ³Øª (با <varname>$var</varname> ÙÙ Ø§ÛØ´ داد٠شد٠است ا٠ا <varname>$var</varname> ÙÙØ· Ù ØØªÙØ§Û Ù ØªØºÛØ± داشت٠٠جدÙÙ ÙØ±Ø§Ø®ÙاÙÛ ÙØ±Ø§Ø®ÙاÙÛ Ø§ØªØµØ§Ù ÙØ§Ù Ø¨Ù Ù ÙØ¯Ø§Ø± را در Ø®ÙØ¯ ÙØ¯Ø§Ø±Ø¯). ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ از <link linkend="language.references.return">Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠راجع</link> Ø¨Ø±Ø§Û Ø§Ø±Ø¬Ø§Ø¹ Ù ØªØºÛØ±ÙØ§Û Ø§ÙØªØ®Ø§Ø¨ شد٠در تابع Ø§Ø³ØªÙØ§Ø¯Ù Ù٠اÛÛØ¯. </simpara> </sect1> <sect1 xml:id="language.references.pass"> <title>Ø§ÙØªÙا٠با ٠رجع</title> <para> ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ Ù ØªØºÛØ± را با Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجع ب٠تابع Ø§ÙØªÙا٠دÙÛØ¯ تا آ٠تابع آرگÙ٠اÙâÙØ§Û Ø®ÙØ¯ را تغÛÛØ± دÙÙØ¯. Ø¯Ø³ØªÙØ±Ø§Øª Ø¨ØµÙØ±Øª Ø²ÛØ± است: <informalexample> <programlisting role="php"> <![CDATA[ <?php function foo(&$var) { $var++; } $a=5; foo($a); // $a is 6 here ?> ]]> </programlisting> </informalexample> ØªÙØ¬Ù Ù٠اÛÛØ¯ ÙØ´Ø§ÙÙٰاس از ٠رجع در ÙØ±Ø§Ø®ÙاÙÛ ØªØ§Ø¨Ø¹ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯ ٠تÙÙØ§ در تعرÛ٠تابع Ø¯ÛØ¯Ù Ù ÛâØ´ÙØ¯. تعرÛ٠تابع ب٠تÙÙØ§ÛÛ Ø¨Ø±Ø§Û Ø§ÙØªÙا٠با ٠رجع کاÙÛ Ø§Ø³Øª. در ÙØ³Ø®ÙâÙØ§Û Ø§Ø®ÛØ± PHP ش٠ا ÛÚ© ÙØ´Ø¯Ø§Ø± با Ù ØØªÙØ§Û "Ø²Ù Ø§Ù ÙØ±Ø§Ø®ÙاÙÛ Ø§ÙØªÙا٠با ٠رجع" ÙØ§Ù Ø·ÙÙØ¨ است ÙÙÚ¯Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù از & در <literal>foo(&$a);</literal> Ø¯Ø±ÛØ§Ùت Ù ÛâÚ©ÙÛØ¯. </para> <para> Ù ÙØ§Ø±Ø¯ Ø²ÛØ± ÙØ§Ø¯Ø± Ø¨Ù Ø§ÙØªÙا٠با Ø§Ø³ØªÙØ§Ø¯Ù از ٠رجع است: <itemizedlist> <listitem> <simpara> Ù ØªØºÛØ± ٠اÙÙØ¯ <literal>foo($a)</literal> </simpara> </listitem> <listitem> <simpara> عبارات Ø¬Ø¯ÛØ¯ ٠اÙÙØ¯ <literal>foo(new foobar())</literal> </simpara> </listitem> <listitem> <para> ٠رجع Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ø´Ø¯Ù ØªÙØ³Ø· تابع ٠اÙÙØ¯: <informalexample> <programlisting role="php"> <![CDATA[ <?php function &bar() { $a = 5; return $a; } foo(bar()); ?> ]]> </programlisting> </informalexample> ØªÙØ¶ÛØØ§Øª دربار٠<link linkend="language.references.return">Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع</link> ببÛÙÛØ¯. </para> </listitem> </itemizedlist> </para> <para> عبارات دÛگر Ø¨Ø§ÛØ¯ Ø¨Ù ØµÙØ±Øª ٠رجع Ù ÙØªÙÙ ÙÚ¯Ø±Ø¯ÙØ¯ Ù ÙØªÛØ¬Ù ØºÛØ±Ù شخص است. ب٠عÙÙØ§Ù ٠ثا٠ÙÙ ÙÙÙ Ø²ÛØ± Ø§ÙØªÙا٠با ٠رجع ÙØ§Ø¯Ø±Ø³Øª است: <informalexample> <programlisting role="php"> <![CDATA[ <?php function bar() // Note the missing & { $a = 5; return $a; } foo(bar()); // Produces fatal error since PHP 5.0.5 foo($a = 5); // Expression, not variable foo(5); // Produces fatal error ?> ]]> </programlisting> </informalexample> اÛÙ ÙÛØ§Ø²Ù ÙØ¯ÛâÙØ§ Ø¨Ø±Ø§Û PHP 4.0.4 Ù Ø¬Ø¯ÛØ¯ØªØ± است. </para> </sect1> <sect1 xml:id="language.references.return"> <title>Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع</title> <para> Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از ÛÚ© تابع Ø¨Ø±Ø§Û ÛØ§ÙØªÙ Ù ØªØºÛØ± ٠تص٠ب٠٠رجع Ù ÙÛØ¯ است. Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع را Ø¨Ø±Ø§Û Ø§ÙØ²Ø§ÛØ´ ع٠Ùکرد Ù ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± ÙØ¯ÙÛØ¯ Ù ÙØªÙر Ø¨Ù Ø§ÙØ¯Ø§Ø²Ù کاÙÛ Ø¨Ø§ÙÙØ´ است ک٠آÙÙØ§ را بÙÛÙÙâØ³Ø§Ø²Û ÙÙ Ø§ÛØ¯. Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع تÙÙØ§ با ÛÚ© دÙÛÙ ÙÙÛ Ù ÙØ¬Ù Ø¨Ø§ÛØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯! Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù ٠رجع از اÛÙ Ø¯Ø³ØªÙØ± Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯: <informalexample> <programlisting role="php"> <![CDATA[ <?php class foo { public $value = 42; public function &getValue() { return $this->value; } } $obj = new foo; $myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42. $obj->value = 2; echo $myValue; // prints the new value of $obj->value, i.e. 2. ?> ]]> </programlisting> </informalexample> در اÛ٠٠ثا٠ÙÛÚÚ¯Û Ø´Û Ú©Ù ØªÙØ³Ø· تابع <varname>getValue</varname> Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù شد٠تعÛÛÙ Ú¯Ø´ØªÙ Ù Ú©Ù¾Û ÙÛÚ ØªØºÛÛØ±Û را Ø¯Ø±ÛØ§Ùت ÙÙÙ ÙØ¯Ù است Ú©Ù Ù٠اÙÙØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ùکرد٠از ساختار Ø¯Ø³ØªÙØ± ٠رجع است. </para> <note> <simpara> Ø¨Ø±Ø®ÙØ§Ù ارسا٠پارا٠تر ر اÛ٠جا ش٠ا Ø¨Ø§ÛØ¯ از <literal>&</literal> در ÙØ± د٠٠ØÙ - Ø¨Ø±Ø§Û ÙØ´Ø§Ù داد٠بازگشت با ٠رجع Ù ÙÙ Ú©Ù¾Û Ù Ø§ÙÙØ¯ ٠ع٠ÙÙ Ù Ø¨Ø±Ø§Û ÙØ´Ø§Ù Ø¯Ø§Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù از اتصا٠٠رجع Ù ÙÙ Ø§ÙØªØµØ§Ø¨ ٠ع٠ÙÙÛ Ø¨Ø§ÛØ¯ Ø¨Ø±Ø§Û <varname>$myValue</varname> Ø§ÙØ¬Ø§Ù Ø´ÙØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. </simpara> </note> <note> <simpara> اگر ش٠ا Ø¨Ø®ÙØ§ÙÛØ¯ ÛÚ© ٠رجع را از تابع با Ø¯Ø³ØªÙØ± Ø²ÛØ± بازگرداÙÛØ¯: <literal>return ($this->value);</literal> اÛÙ Ø¯Ø³ØªÙØ± Ù٠اÙÙØ¯ ØªÙØ§Ø´ ش٠ا Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§Ø¯Ù ÙØªÛج٠ÛÚ© <emphasis>عبارت</emphasis> <emphasis>Ø¹Ù Ù ÙØ®ÙØ§ÙØ¯ کرد</emphasis> Ù ÙÙ Ù ØªØºÛØ± با ٠رجع . ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ Ù ØªØºÛØ±ÙØ§Û Ù Ø±Ø¬Ø¹ را ÙÙØ· از ØªÙØ§Ø¨Ø¹ بازگرداÙÛØ¯ Ù ÙÙ ÚÛØ² دÛگر. Ø®Ø·Ø§Û <constant>E_NOTICE</constant> از ز٠ا٠PHP 4.4.0 Ù PHP 5.1.0 Ø¨Ø±Ø§Û Ú©Ø¯ÙØ§Û بازگرداÙÙØ¯Ù عبارت دÛÙØ§Ù ÛÚ© ÛØ§ ÙØªÛج٠ع٠Ùگر <literal>new</literal> Ø§ÛØ¬Ø§Ø¯ Ù Ûâگردد. </simpara> </note> </sect1> <sect1 xml:id="language.references.unset"> <title>ØºÛØ±ÙعاÙâØ³Ø§Ø²Û Ù Ø±Ø¬Ø¹âÙØ§</title> <para> ÙÙØªÛ ش٠ا ٠رجع را ØºÛØ±Ùعا٠٠ÛâØ³Ø§Ø²ÛØ¯ اتصا٠بÛÙ ÙØ§Ù Ù ØªØºÛØ± Ù Ù ØØªÙØ§Û Ø¢Ù Ø±Ø§ Ù ÛâØ´Ú©ÙÛØ¯. اÛÙ Ø¨Ù Ù Ø¹ÙØ§Û از بÛÙ Ø±ÙØªÙ Ù ØØªÙØ§Û Ù ØªØºÛØ± ÙÛØ³Øª . Ø¨Ø±Ø§Û Ù Ø«Ø§Ù: <informalexample> <programlisting role="php"> <![CDATA[ <?php $a = 1; $b =& $a; unset($a); ?> ]]> </programlisting> </informalexample> <varname>$b</varname> را ØºÛØ±Ùعا٠ÙÙ ÛâØ³Ø§Ø²Ø¯ تÙÙØ§ <varname>$a</varname>. </para> <simpara> Ø¯ÙØ¨Ø§Ø±Ù ٠٠ک٠است Ù ÙÛØ¯ باشد تا اÛÙ Ù ÙØ±Ø¯ را Ù٠اÙÙØ¯ ÛÙÙÛکس ØªØµÙØ± Ù٠اÛÛØ¯ Ú©Ù Ù Ø´Ø§Ø¨Ù ÙØ±Ø§Ø®ÙاÙÛ Ø¯Ø³ØªÙØ± <command>unlink</command> است. </simpara> </sect1> <sect1 xml:id="language.references.spot"> <title>تعÛÛÙ Ù ØÙ ٠رجعâÙØ§</title> <simpara> ساختار Ø¨Ø³ÛØ§Ø±Û از Ø¯Ø³ØªÙØ±Ø§Øª در PHP از طزÛ٠٠کاÙÛØ³Ù ٠رجع ساخت٠شدÙâØ§ÙØ¯ Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ Ø§ØªØµØ§Ù Ø¨Ø±Ø§Û Ø§Û٠ساختâÙØ§ ÙÛØ² Ø¨Ø±ÙØ±Ø§Ø± است. Ø¨Ø¹Ø¶Û Ø³Ø§Ø®ØªØ§Ø±ÙØ§ ٠اÙÙØ¯ Ø§ÙØªÙاÙâÙØ§ Ù Ø¨Ø§Ø²Ú¯Ø±Ø¯Ø§ÙØ¯Ù با ٠رجع Ú©Ù Ø¨Ø§ÙØ§ ذکر شد. Ø³Ø§Ø®ØªØ§Ø±ÙØ§Û دÛÚ¯Ø±Û ÙÛØ² از ٠رجعâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÙÙ Ø§ÛØ¯: </simpara> <sect2 xml:id="references.global"> <title>٠رجعâÙØ§Û <literal>Ø¬ÙØ§ÙÛ</literal></title> <para> ÙÙØªÛ ش٠ا ÛÚ© Ù ØªØºÛØ± را <command>global $var</command> Ø§Ø¹ÙØ§Ù Ù ÛâÙ٠اÛÛØ¯ در ØÙÛÙØª ش٠ا ÛÚ© ٠رجع Ø¨Ø±Ø§Û Ù ØªØºÛØ± Ø¬ÙØ§ÙÛ Ø§ÛØ¬Ø§Ø¯ Ù ÛâÙ٠اÛÛØ¯. اÛ٠کار Ø¨Ù Ø´Ú©Ù Ø²ÛØ± است: <informalexample> <programlisting role="php"> <![CDATA[ <?php $var =& $GLOBALS["var"]; ?> ]]> </programlisting> </informalexample> </para> <simpara> Ø¨Ø±Ø§Û Ù Ø«Ø§Ù ØºÛØ±ÙعاÙâØ³Ø§Ø²Û <varname>$var</varname> Ù ØªØºÛØ± Ø¬ÙØ§ÙÛ Ø±Ø§ ØºÛØ±Ùعا٠ÙÙ ÛâØ³Ø§Ø²Ø¯. </simpara> </sect2> <sect2 xml:id="references.this"> <title><literal>$this</literal></title> <simpara> در ÛÚ© ٠تذ Ø´Û <varname>$this</varname> ÛÚ© ٠رجع Ø¨Ù ÙØ±Ø§Ø®ÙاÙÙØ¯Ù Ø´Û Ù ÛâØ¨Ø§Ø´Ø¯. </simpara> </sect2> </sect1> </chapter> <!-- 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:"../../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 -->