cvs: phpdoc /kr/language references.xml
| From: | Jaeyoung Cho | Date: | Tue, 30 Jan 2001 02:29:44 +0000 |
| Subject: | cvs: phpdoc /kr/language references.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969334049@lists.php.net to get a copy of this message | ||
pandach Mon Jan 29 18:29:44 2001 EDT
Modified files:
/phpdoc/kr/language references.xml
Log:
Index: phpdoc/kr/language/references.xml diff -u phpdoc/kr/language/references.xml:1.4 phpdoc/kr/language/references.xml:1.5 --- phpdoc/kr/language/references.xml:1.4 Mon Jan 29 18:25:41 2001 +++ phpdoc/kr/language/references.xml Mon Jan 29 18:29:44 2001 @@ -1,118 +1,312 @@ -<!-- edited with XML Spy v3.0.7 NT (http://www.xmlspy.com) by panda (bra) --><chapter id="language.references"> <title>References Explained</title> <sect1 id="language.references.whatare"> <title>참조(Reference)ë 무ìì¸ê°.</title> <simpara> - 참조ë PHPìì ëì¼í ê°ì ìë¡ë¤ë¥¸ ì´ë¦ì¼ë¡ access íë ê²ì ë§íë¤. - 참조ë Cì¸ì´ ììì pointerìë 구ë³ëë©°, simbol tableê³¼ ê°ë¤ê³ í ì ìë¤. PHP - ììë ë³ìëª ê³¼ ë³ìê°ì´ ë¤ë¥´ë¤ëê²ì 주ì í´ì¼ íë¤. ë°ë¼ì, ëì¼í - ë´ì©ì´ ë¤ë¥¸ ì´ë¦ì ê°ì§ì ìë¤. ì´ë ë³ìê°ì´ íì¼ì´ì§ë§ ë³ìëª ì - ëë í 리ì ììì¸ UNIXìì fileê³¼ filenameê³¼ì ê´ê³ì 매ì°ì ì¬íë¤. - 참조ë UNIX íì¼ ìì¤í ììì hardlinkingì¼ë¡ ìê°í ì ìë¤. - </simpara> </sect1> <sect1 id="language.references.whatdo"> <title>ì°¸ì¡°ë¡ í ì ìëì¼ì(What References Do)</title> <para> - 첫ë²ì§¸ë¡ PHPììì 참조ë ëê°ì ë¤ë¥¸ ë³ìê° ëì¼í ë´ì©(content)를 - ê°ë¦¬í¬ì ìê² íë¤. ë¤ìë§í´ ë¤ìê³¼ ê°ì 문ì¥ì´ ìë¤ë©´ - <informalexample> <programlisting role="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> ë ëì¼í ìì¹ì ë´ì©(content)를 ì§ì¹íê³ ìë¤. - </para> </note> </para> <para> - í¨ìììë ë³ììì ì ì©ëë ê²ê³¼ ëì¼íê² ì ì©ëë¤. <literal>new</literal> ë¼ë ì°ì°ì를 ì¬ì©íì¬ ì°¸ì¡°ë¥¼ ëë ¤ì¤ì ìë¤.(ì´ë PHP 4.0.4ì´í ë²ì ¼ì ì ì©ëë¤.) <informalexample> <programlisting role="php"> -$bar =& new fooclass(); -$foo =& find_var ($bar); - </programlisting> </informalexample> </para> <note> <para> - Unless you use the syntax above, the result of - <literal>$bar = new fooclass()</literal> will not be the same - variable as <literal>$this</literal> in the constructor, meaning - that if you have used reference to <literal>$this</literal> in - the constructor, you should use reference assignment, or you get - two different objects. - </para> </note> <para> ì°¸ì¡°ë¡ í ì ìë ëë²ì§¸ ê²ì 참조ì ìí ë³ìì ì ë¬ì´ë¤. ì´ë í¨ì ë´ìì ìì±ë ì§ìë³ìì í¨ì를 í¸ì¶í ììì ë³ìê° ëì¼í ê°ì ê°ë¦¬í¤ê² í ì ìë¤. - ìëì ì를 ë³´ì<informalexample> <programlisting role="php"> -function foo (&$var) { - $var++; -} - -$a=5; -foo ($a); - </programlisting> </informalexample><varname>$a</varname> ì ê°ì 6ì´ ëë¤. ì´ë í¨ì<varname>foo</varname> ë´ì ì§ìë³ì <varname>$var</varname> ê° í¨ì를 í¸ì¶í ììì ë³ì <varname>$a</varname>ì ëì¼í ê°(content)ì 참조í기 ë문ì´ë¤. ì´ì ëí ì¢ ë ìì¸í ì¤ëª ì<link linkend="language.references.pass">참조ì ìí ì ë¬(passing by reference)</link>ì íì¸í´ 보기 ë°ëë¤. - </para> <simpara> ì¸ë²ì§¸ë¡ 참조ë¡ì í ì ìë ê²ì<link linkend="language.references.return">참조ì ìí return(return by reference)</link>ì´ë¤. - </simpara> </sect1> <sect1 id="language.references.arent"> <title>참조를 ì¬ì©í¨ì ìì´ ì£¼ì í´ì¼ í ê²(What References Are Not)</title> <para> ìì ë§íë¯ì´ 참조ë C ì¸ì´ììì pointerìë ë¤ë¥´ë¤. ìëì ì를 ë³´ê³ ê·¸ ê²°ê³¼ê° ì°ë¦¬ê° 기ëíë ê²ê³¼ ë¤ë¥´ë¤ë ê²ì ìë¤ë©´ 참조(reference)ì pointerê° ë¤ë¥´ë¤ë ê²ì ìì ìì ê²ì´ë¤. - <informalexample> <programlisting role="php"> -function foo (&$var) { - $var =& $GLOBALS["baz"]; -} -foo($bar); - </programlisting> </informalexample> </para> <simpara> ìì ììì fooí¨ì ë´ì ë³ì<varname>$var</varname> ë í¨ì를 í¸ì¶í ììì ë³ì<varname>$bar</varname> ì ëì¼í ê°ì 참조íì§ë§ ê³§ì´ì´ ì ìë³ì<varname>$GLOBALS["baz"]</varname>ê° ì°¸ì¡°íë ê°ì 참조íëë¡ ë°ëë¤. ì´ì ì´ í¨ìë´ìì 참조ì ë©ì¹´ëì¦ì ì¬ì©íì¬ í¨ì를 í¸ì¶í ììì ë³ì<varname>$bar</varname> 를 참조í ì ìë ë°©ë²ì´ ìë¤. ë°ë¼ì í¨ì를 í¸ì¶í ììì ë³ì<varname>$bar</varname> ë í¨ì fooë´ììë 무ì 미í ì ë°ì ìë¤. (ì¦ í¨ì를 í¸ì¶í ììì ë³ìë í¨ìë´ì ë³ì<varname>$var</varname>ì ìí´ ëíë¼ì ìì§ë§,<varname>$var</varname> ë ë¨ì§ ë³ìê°ì´ì§ symbol tableì ì ìë ë³ìëª ì´ ìëë¤.) </simpara> </sect1> <sect1 id="language.references.pass"> <title>참조를 ì¬ì©í ì ë¬(Passing by Reference)</title> <para> 참조(reference)를 ì¬ì©íì¬ ë³ì를 í¨ìë¡ ë겨 ì ë¬(pass)í ì ìë¤. ê·¸ëì í¨ì ë´ìì ë³ìì ê°ì ìì í ì ìë¤. ë¤ìì´ ê·¸ ìì´ë¤.<informalexample> <programlisting role="php"> -function foo (&$var) { - $var++; -} - -$a=5; -foo ($a); -// $a is 6 here - </programlisting> </informalexample> í¨ì를 í¸ì¶í ë 참조를 ì´ì©íì¬ ë³ì를 ì ë¬(pass)íë¤ë ì´ë í íìë ìë¤ë ê²ì 주ìíì. ë¨ì§ í¨ì를 ì ì í ë ë³ì를 참조ì ìí´ ì ë¬ ë°ëë¤ë íìê° ìë¤. í¨ì를 ì ìí ë ì´ë¥¼ ì ì í¨ì¼ë¡ì¨ 참조ì ìí ë³ì ì ë¬ì´ ê°ë¥íë¤. </para> <para> 참조ì ìí´ ë³ì를 ë겨 주ë ë°©ë²ì ë¤ìì ì¸ê°ì§ ë°©ë²ì´ ìë¤: <itemizedlist> <listitem> <simpara> ë³ìì ìí ë°©ë², ì¦.<literal>foo($a)</literal> </simpara> </listitem> <listitem> <simpara> Newë¼ë 문ì¥ì ì´ì©íë ë°©ë², ì¦.<literal>foo(new foobar())</literal> </simpara> </listitem> <listitem> <para> í¨ìë¡ ë¶í° ë겨 ë°ë 참조ì ìí ë°©ë², ì¦. <informalexample> <programlisting role="php"> -function &bar() -{ - $a = 5; - return $a; -} -foo(bar()); - </programlisting> </informalexample><link linkend="language.references.return">참조ì ìí 리í´(returning by reference)</link>ì ìì¸í ì¤ëª ì ë³¼ì ìë¤. - </para> </listitem> </itemizedlist> </para> <para> ìì ëì´í ì¸ê°ì§ ë°©ë²ì¸ìë 참조ì ìí ì ë¬(pass)ì í ì ìë¤. ì를 ë¤ë©´ ìë ìì ê°ì ë°©ë²ì¼ë¡ 참조ì ìí ì ë¬ì ê·¸ ìë¯¸ê° ê·¸ ìë¯¸ê° ì ííì§ ëª»íë¤.<informalexample> <programlisting role="php"> -function bar() // & ê° ë¹ ì ¸ììì ì ìíì; -{ - $a = 5; - return $a; -} -foo(bar)); - -foo($a = 5) // ííì(Expression)ì ë³ìê° ìëë¤. -foo(5) // ìì(Constant)ë ë³ìê° ìëê°. - </programlisting> </informalexample> ì´ ëª¨ë ê²ì PHP 4.0.4 ì´ìì ë²ì ¼ì í´ë¹ëë¤. </para> </sect1> <sect1 id="language.references.return"> <title>ì°¸ì¡°ê° ë¦¬í´(Returning References)</title> <para> ì°¸ì¡°ê° ë¦¬í´ì ë³ìê° ì´ë¤ê°ì 참조íë ì§ë¥¼ ì°¾ë í¨ì를 ì¬ì©í ë ì ì©íë¤. ì°¸ì¡°ê° ë¦¬í´ì 문ë²ì ë¤ìê³¼ ê°ë¤<informalexample> <programlisting role="php"> -function &find_var ($param) { - ...code... - return $found_var; -} - -$foo =& find_var ($bar); -$foo->x = 2; - </programlisting> </informalexample> ìì ììì í¨ì<varname>find_var</varname>ì ìí´ ë¦¬í´ë ê°ì²´ì ìì±ì ë³µì¬ëì´ ì§ë ê²ì´ ìëë¼ ì ì(set)ëì´ ì§ë¤.참조ì 문ë²ì ì¬ì©íì§ ìê³ ë ê°ë¥íë¤.</para> <note> <simpara> ì°¸ì¡°ê° ë¦¬í´ ì´ë¼ë ê²ì íì í기ìí´ ì¸ìì ë¬ê³¼ë ë¬ë¦¬ í¨ì를 í¸ì¶íë 쪽과 í¸ì¶ëì´ì§ë í¨ì ì쪽ì <literal>&</literal>기í¸ê° ìì´ì¼ íë¤. ì´ë¡ ì¸í´ ì¼ë°ì ì¼ë¡ í¨ìê°ì 리í´ë°©ìì¸ ë³µì¬ì ìí ë°©ë²ì´ ìëë¼ ì°¸ì¡°ë¥¼ ì¬ì©í 리í´ì´<varname>$foo</varname>ë¡ ê°ë¥í´ ì§ ê²ì´ë¤. - </simpara> </note> </sect1> <sect1 id="language.references.unset"> <title>참조ì§ì ìì 기(Unsetting References)</title> <para> 참조ë ê°ì ìì ë ¤ë©´ ë³ìëª ê³¼ ê·¸ê° ê°ë¦¬í¤ë ë´ì©(content)ìì ì°ê²°ê³ 리를 ëì¼ë©´ ëë¤. ì´ë ê² íë¤ê³ í´ì ë³ìê° ê°ë¦¬í¤ë ë´ì© ìì²´ê° ìì´ì§ë¤ë ê²ì ì미íì§ë ìëë¤. ìëì ì를 ë³´ì: - <informalexample> <programlisting role="php"> -$a = 1; -$b =& $a; -unset ($a); - </programlisting> </informalexample> ë³ì<varname>$b</varname>ì 참조ë ê°ì ìì¤ê²ì´ ìëë¼ ë¨ì§ ë³ì<varname>$a</varname>ê° ì§ìíë ê²ì ìì´ë¤. - </para> <simpara> ë¤ìë§í´, ì´ë Unix ìì¤í ìì <command>unlink</command>를 í¸ì¶íë ê²ê³¼ ìë¹í ì ì¬íë¤. </simpara> </sect1> <sect1 id="language.references.spot"> <title>Spotting References</title> <simpara> - Many syntax constructs in PHP are implemented via referencing - mechanisms, so everything told above about reference binding also - apply to these constructs. Some constructs, like passing and - returning by-reference, are mentioned above. Other constructs that - use references are: - </simpara> <sect2 id="references.global"> <title> <literal>global</literal> References</title> <para> - When you declare variable as <command>global $var</command> you - are in fact creating reference to a global variable. That means, - this is the same as: - <informalexample> <programlisting role="php"> -$var =& $GLOBALS["var"]; - </programlisting> </informalexample> </para> <simpara> - That means, for example, that unsetting <varname>$var</varname> - won't unset global variable. - </simpara> </sect2> <sect2 id="references.this"> <title> <literal>$this</literal> </title> <simpara> - In an object method, <varname>$this</varname> is always reference - to the caller object. - </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 -sgml-parent-document:nil -sgml-default-dtd-file:"../../manual.ced" -sgml-exposed-tags:nil -sgml-local-catalogs:nil -sgml-local-ecat-files:nil -End: ---> \ No newline at end of file +<chapter id="language.references"> + <title>References Explained</title> + <sect1 id="language.references.whatare"> + <title>참조(Reference)ë 무ìì¸ê°.</title> + <simpara> + 참조ë PHPìì ëì¼í ê°ì ìë¡ë¤ë¥¸ ì´ë¦ì¼ë¡ access íë ê²ì ë§íë¤. + 참조ë Cì¸ì´ ììì pointerìë 구ë³ëë©°, simbol tableê³¼ ê°ë¤ê³ í ì ìë¤. PHP + ììë ë³ìëª ê³¼ ë³ìê°ì´ ë¤ë¥´ë¤ëê²ì 주ì í´ì¼ íë¤. ë°ë¼ì, ëì¼í + ë´ì©ì´ ë¤ë¥¸ ì´ë¦ì ê°ì§ì ìë¤. ì´ë ë³ìê°ì´ íì¼ì´ì§ë§ ë³ìëª ì + ëë í 리ì ììì¸ UNIXìì fileê³¼ filenameê³¼ì ê´ê³ì 매ì°ì ì¬íë¤. + 참조ë UNIX íì¼ ìì¤í ììì hardlinkingì¼ë¡ ìê°í ì ìë¤. + </simpara> + </sect1> + <sect1 id="language.references.whatdo"> + <title>ì°¸ì¡°ë¡ í ì ìëì¼ì(What References Do)</title> + <para> + 첫ë²ì§¸ë¡ PHPììì 참조ë ëê°ì ë¤ë¥¸ ë³ìê° ëì¼í ë´ì©(content)를 + ê°ë¦¬í¬ì ìê² íë¤. ë¤ìë§í´ ë¤ìê³¼ ê°ì 문ì¥ì´ ìë¤ë©´ + <informalexample> + <programlisting role="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> ë ëì¼í ìì¹ì ë´ì©(content)를 ì§ì¹íê³ ìë¤. + </para> + </note> + </para> + <para> + í¨ìììë ë³ììì ì ì©ëë ê²ê³¼ ëì¼íê² ì ì©ëë¤. +<literal>new</literal> + ë¼ë ì°ì°ì를 ì¬ì©íì¬ ì°¸ì¡°ë¥¼ ëë ¤ì¤ì ìë¤.(ì´ë PHP 4.0.4ì´í ë²ì ¼ì ì ì©ëë¤.) + <informalexample> + <programlisting role="php"> + $bar =& new fooclass(); + $foo =& find_var ($bar); + </programlisting> + </informalexample> + </para> + <note> + <para> + Unless you use the syntax above, the result of + <literal>$bar = new fooclass()</literal> will not be the same + variable as <literal>$this</literal> in the constructor, meaning + that if you have used reference to <literal>$this</literal> in + the constructor, you should use reference assignment, or you get + two different objects. + </para> + </note> + <para> + ì°¸ì¡°ë¡ í ì ìë ëë²ì§¸ ê²ì 참조ì ìí ë³ìì ì ë¬ì´ë¤. ì´ë í¨ì ë´ìì + + ìì±ë ì§ìë³ìì í¨ì를 í¸ì¶í ììì ë³ìê° ëì¼í ê°ì ê°ë¦¬í¤ê² í ì ìë¤. + ìëì ì를 ë³´ì +<informalexample> + <programlisting role="php"> + function foo (&$var) { + $var++; + } + + $a=5; + foo ($a); + </programlisting> + </informalexample><varname>$a</varname> ì ê°ì 6ì´ ëë¤. ì´ë í¨ì +<varname>foo</varname> ë´ì ì§ìë³ì + + <varname>$var</varname> ê° í¨ì를 í¸ì¶í ììì ë³ì + + <varname>$a</varname>ì ëì¼í ê°(content)ì 참조í기 ë문ì´ë¤. + +ì´ì ëí ì¢ ë ìì¸í ì¤ëª ì +<link linkend="language.references.pass">참조ì ìí ì ë¬(passing by reference)</link>ì íì¸í´ 보기 ë°ëë¤. + </para> + <simpara> ì¸ë²ì§¸ë¡ 참조ë¡ì í ì ìë ê²ì + +<link linkend="language.references.return">참조ì ìí return(return by reference)</link>ì´ë¤. + </simpara> + </sect1> + <sect1 id="language.references.arent"> + <title>참조를 ì¬ì©í¨ì ìì´ ì£¼ì í´ì¼ í ê²(What References Are Not)</title> + <para> + ìì ë§íë¯ì´ 참조ë C ì¸ì´ììì pointerìë ë¤ë¥´ë¤. ìëì ì를 ë³´ê³ + + ê·¸ ê²°ê³¼ê° ì°ë¦¬ê° 기ëíë ê²ê³¼ ë¤ë¥´ë¤ë ê²ì ìë¤ë©´ 참조(reference)ì + + pointerê° ë¤ë¥´ë¤ë ê²ì ìì ìì ê²ì´ë¤. + <informalexample> + <programlisting role="php"> + function foo (&$var) { + $var =& $GLOBALS["baz"]; + } + foo($bar); + </programlisting> + </informalexample> + </para> + <simpara> ìì ììì fooí¨ì ë´ì ë³ì +<varname>$var</varname> ë í¨ì를 í¸ì¶í ììì ë³ì + +<varname>$bar</varname> ì ëì¼í ê°ì 참조íì§ë§ + + ê³§ì´ì´ ì ìë³ì + +<varname>$GLOBALS["baz"]</varname>ê° ì°¸ì¡°íë ê°ì 참조íëë¡ ë°ëë¤. + + ì´ì ì´ í¨ìë´ìì 참조ì ë©ì¹´ëì¦ì ì¬ì©íì¬ í¨ì를 í¸ì¶í ììì ë³ì + +<varname>$bar</varname> 를 참조í ì ìë ë°©ë²ì´ ìë¤. ë°ë¼ì + + í¨ì를 í¸ì¶í ììì ë³ì +<varname>$bar</varname> ë í¨ì fooë´ììë 무ì 미í ì ë°ì ìë¤. + + (ì¦ í¨ì를 í¸ì¶í ììì ë³ìë í¨ìë´ì ë³ì + +<varname>$var</varname>ì ìí´ ëíë¼ì ìì§ë§, +<varname>$var</varname> ë ë¨ì§ ë³ìê°ì´ì§ symbol tableì ì ìë ë³ìëª ì´ ìëë¤.) + + </simpara> + </sect1> + <sect1 id="language.references.pass"> + <title>참조를 ì¬ì©í ì ë¬(Passing by Reference)</title> + <para> 참조(reference)를 ì¬ì©íì¬ ë³ì를 í¨ìë¡ ë겨 ì ë¬(pass)í ì ìë¤. ê·¸ëì + + í¨ì ë´ìì ë³ìì ê°ì ìì í ì ìë¤. ë¤ìì´ ê·¸ ìì´ë¤. +<informalexample> + <programlisting role="php"> + function foo (&$var) { + $var++; + } + + $a=5; + foo ($a); + // $a is 6 here + </programlisting> + </informalexample> + í¨ì를 í¸ì¶í ë 참조를 ì´ì©íì¬ ë³ì를 ì ë¬(pass)íë¤ë ì´ë í íìë ìë¤ë ê²ì 주ìíì. + + ë¨ì§ í¨ì를 ì ì í ë ë³ì를 참조ì ìí´ ì ë¬ ë°ëë¤ë íìê° ìë¤. í¨ì를 ì ìí ë ì´ë¥¼ + + ì ì í¨ì¼ë¡ì¨ 참조ì ìí ë³ì ì ë¬ì´ ê°ë¥íë¤. + </para> + <para> + 참조ì ìí´ ë³ì를 ë겨 주ë ë°©ë²ì ë¤ìì ì¸ê°ì§ ë°©ë²ì´ ìë¤: + <itemizedlist> + <listitem> + <simpara> ë³ìì ìí ë°©ë², ì¦. + +<literal>foo($a)</literal> + </simpara> + </listitem> + <listitem> + <simpara> Newë¼ë 문ì¥ì ì´ì©íë ë°©ë², ì¦. +<literal>foo(new foobar())</literal> + </simpara> + </listitem> + <listitem> + <para> í¨ìë¡ ë¶í° ë겨 ë°ë 참조ì ìí ë°©ë², ì¦. + <informalexample> + <programlisting role="php"> + function &bar() + { + $a = 5; + return $a; + } + foo(bar()); + </programlisting> + </informalexample><link linkend="language.references.return">참조ì ìí 리í´(returning by reference)</link>ì ìì¸í ì¤ëª ì ë³¼ì ìë¤. + </para> + </listitem> + </itemizedlist> + </para> + <para> ìì ëì´í ì¸ê°ì§ ë°©ë²ì¸ìë 참조ì ìí ì ë¬(pass)ì í ì ìë¤. + + ì를 ë¤ë©´ ìë ìì ê°ì ë°©ë²ì¼ë¡ 참조ì ìí ì ë¬ì ê·¸ ìë¯¸ê° ê·¸ ìë¯¸ê° ì ííì§ ëª»íë¤. +<informalexample> + <programlisting role="php"> + function bar() // & ê° ë¹ ì ¸ììì ì ìíì; + { + $a = 5; + return $a; + } + foo(bar)); + + foo($a = 5) // ííì(Expression)ì ë³ìê° ìëë¤. + foo(5) // ìì(Constant)ë ë³ìê° ìëê°. + </programlisting> + </informalexample> ì´ ëª¨ë ê²ì PHP 4.0.4 ì´ìì ë²ì ¼ì í´ë¹ëë¤. + </para> + </sect1> + <sect1 id="language.references.return"> + <title>ì°¸ì¡°ê° ë¦¬í´(Returning References)</title> + <para> + ì°¸ì¡°ê° ë¦¬í´ì ë³ìê° ì´ë¤ê°ì 참조íë ì§ë¥¼ ì°¾ë í¨ì를 ì¬ì©í ë + + ì ì©íë¤. ì°¸ì¡°ê° ë¦¬í´ì 문ë²ì ë¤ìê³¼ ê°ë¤ +<informalexample> + <programlisting role="php"> + function &find_var ($param) { + ...code... + return $found_var; + } + + $foo =& find_var ($bar); + $foo->x = 2; + </programlisting> + </informalexample> + ìì ììì í¨ì +<varname>find_var</varname>ì ìí´ ë¦¬í´ë ê°ì²´ì ìì±ì ë³µì¬ëì´ ì§ë ê²ì´ ìëë¼ ì ì(set)ëì´ ì§ë¤. + +참조ì 문ë²ì ì¬ì©íì§ ìê³ ë ê°ë¥íë¤. + +</para> + <note> + <simpara> + ì°¸ì¡°ê° ë¦¬í´ ì´ë¼ë ê²ì íì í기ìí´ ì¸ìì ë¬ê³¼ë ë¬ë¦¬ í¨ì를 í¸ì¶íë + + 쪽과 í¸ì¶ëì´ì§ë í¨ì ì쪽ì + <literal>&</literal>기í¸ê° ìì´ì¼ íë¤. + +ì´ë¡ ì¸í´ ì¼ë°ì ì¼ë¡ í¨ìê°ì 리í´ë°©ìì¸ ë³µì¬ì ìí ë°©ë²ì´ ìëë¼ + + 참조를 ì¬ì©í 리í´ì´ +<varname>$foo</varname>ë¡ ê°ë¥í´ ì§ ê²ì´ë¤. + </simpara> + </note> + </sect1> + <sect1 id="language.references.unset"> + <title>참조ì§ì ìì 기(Unsetting References)</title> + <para> + 참조ë ê°ì ìì ë ¤ë©´ ë³ìëª ê³¼ ê·¸ê° ê°ë¦¬í¤ë ë´ì©(content)ìì ì°ê²°ê³ 리를 + + ëì¼ë©´ ëë¤. ì´ë ê² íë¤ê³ í´ì ë³ìê° ê°ë¦¬í¤ë ë´ì© ìì²´ê° ìì´ì§ë¤ë ê²ì + + ì미íì§ë ìëë¤. ìëì ì를 ë³´ì: + <informalexample> + <programlisting role="php"> + $a = 1; + $b =& $a; + unset ($a); + </programlisting> + </informalexample> ë³ì +<varname>$b</varname>ì 참조ë ê°ì ìì¤ê²ì´ ìëë¼ ë¨ì§ ë³ì +<varname>$a</varname>ê° ì§ìíë ê²ì ìì´ë¤. + </para> + <simpara> ë¤ìë§í´, ì´ë Unix ìì¤í ìì + <command>unlink</command>를 í¸ì¶íë ê²ê³¼ ìë¹í ì ì¬íë¤. + + </simpara> + </sect1> + <sect1 id="language.references.spot"> + <title>Spotting References</title> + <simpara> + Many syntax constructs in PHP are implemented via referencing + mechanisms, so everything told above about reference binding also + apply to these constructs. Some constructs, like passing and + returning by-reference, are mentioned above. Other constructs that + use references are: + </simpara> + <sect2 id="references.global"> + <title> + <literal>global</literal> References</title> + <para> + When you declare variable as <command>global $var</command> you + are in fact creating reference to a global variable. That means, + this is the same as: + <informalexample> + <programlisting role="php"> + $var =& $GLOBALS["var"]; + </programlisting> + </informalexample> + </para> + <simpara> + That means, for example, that unsetting <varname>$var</varname> + won't unset global variable. + </simpara> + </sect2> + <sect2 id="references.this"> + <title> + <literal>$this</literal> + </title> + <simpara> + In an object method, <varname>$this</varname> is always reference + to the caller object. + </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 + sgml-parent-document:nil + sgml-default-dtd-file:"../../manual.ced" + sgml-exposed-tags:nil + sgml-local-catalogs:nil + sgml-local-ecat-files:nil + End: + -->
Index: phpdoc/kr/language/references.xml diff -u phpdoc/kr/language/references.xml:1.4 phpdoc/kr/language/references.xml:1.5 --- phpdoc/kr/language/references.xml:1.4 Mon Jan 29 18:25:41 2001 +++ phpdoc/kr/language/references.xml Mon Jan 29 18:29:44 2001 @@ -1,118 +1,312 @@ -<!-- edited with XML Spy v3.0.7 NT (http://www.xmlspy.com) by panda (bra) --><chapter id="language.references"> <title>References Explained</title> <sect1 id="language.references.whatare"> <title>참조(Reference)ë 무ìì¸ê°.</title> <simpara> - 참조ë PHPìì ëì¼í ê°ì ìë¡ë¤ë¥¸ ì´ë¦ì¼ë¡ access íë ê²ì ë§íë¤. - 참조ë Cì¸ì´ ììì pointerìë 구ë³ëë©°, simbol tableê³¼ ê°ë¤ê³ í ì ìë¤. PHP - ììë ë³ìëª ê³¼ ë³ìê°ì´ ë¤ë¥´ë¤ëê²ì 주ì í´ì¼ íë¤. ë°ë¼ì, ëì¼í - ë´ì©ì´ ë¤ë¥¸ ì´ë¦ì ê°ì§ì ìë¤. ì´ë ë³ìê°ì´ íì¼ì´ì§ë§ ë³ìëª ì - ëë í 리ì ììì¸ UNIXìì fileê³¼ filenameê³¼ì ê´ê³ì 매ì°ì ì¬íë¤. - 참조ë UNIX íì¼ ìì¤í ììì hardlinkingì¼ë¡ ìê°í ì ìë¤. - </simpara> </sect1> <sect1 id="language.references.whatdo"> <title>ì°¸ì¡°ë¡ í ì ìëì¼ì(What References Do)</title> <para> - 첫ë²ì§¸ë¡ PHPììì 참조ë ëê°ì ë¤ë¥¸ ë³ìê° ëì¼í ë´ì©(content)를 - ê°ë¦¬í¬ì ìê² íë¤. ë¤ìë§í´ ë¤ìê³¼ ê°ì 문ì¥ì´ ìë¤ë©´ - <informalexample> <programlisting role="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> ë ëì¼í ìì¹ì ë´ì©(content)를 ì§ì¹íê³ ìë¤. - </para> </note> </para> <para> - í¨ìììë ë³ììì ì ì©ëë ê²ê³¼ ëì¼íê² ì ì©ëë¤. <literal>new</literal> ë¼ë ì°ì°ì를 ì¬ì©íì¬ ì°¸ì¡°ë¥¼ ëë ¤ì¤ì ìë¤.(ì´ë PHP 4.0.4ì´í ë²ì ¼ì ì ì©ëë¤.) <informalexample> <programlisting role="php"> -$bar =& new fooclass(); -$foo =& find_var ($bar); - </programlisting> </informalexample> </para> <note> <para> - Unless you use the syntax above, the result of - <literal>$bar = new fooclass()</literal> will not be the same - variable as <literal>$this</literal> in the constructor, meaning - that if you have used reference to <literal>$this</literal> in - the constructor, you should use reference assignment, or you get - two different objects. - </para> </note> <para> ì°¸ì¡°ë¡ í ì ìë ëë²ì§¸ ê²ì 참조ì ìí ë³ìì ì ë¬ì´ë¤. ì´ë í¨ì ë´ìì ìì±ë ì§ìë³ìì í¨ì를 í¸ì¶í ììì ë³ìê° ëì¼í ê°ì ê°ë¦¬í¤ê² í ì ìë¤. - ìëì ì를 ë³´ì<informalexample> <programlisting role="php"> -function foo (&$var) { - $var++; -} - -$a=5; -foo ($a); - </programlisting> </informalexample><varname>$a</varname> ì ê°ì 6ì´ ëë¤. ì´ë í¨ì<varname>foo</varname> ë´ì ì§ìë³ì <varname>$var</varname> ê° í¨ì를 í¸ì¶í ììì ë³ì <varname>$a</varname>ì ëì¼í ê°(content)ì 참조í기 ë문ì´ë¤. ì´ì ëí ì¢ ë ìì¸í ì¤ëª ì<link linkend="language.references.pass">참조ì ìí ì ë¬(passing by reference)</link>ì íì¸í´ 보기 ë°ëë¤. - </para> <simpara> ì¸ë²ì§¸ë¡ 참조ë¡ì í ì ìë ê²ì<link linkend="language.references.return">참조ì ìí return(return by reference)</link>ì´ë¤. - </simpara> </sect1> <sect1 id="language.references.arent"> <title>참조를 ì¬ì©í¨ì ìì´ ì£¼ì í´ì¼ í ê²(What References Are Not)</title> <para> ìì ë§íë¯ì´ 참조ë C ì¸ì´ììì pointerìë ë¤ë¥´ë¤. ìëì ì를 ë³´ê³ ê·¸ ê²°ê³¼ê° ì°ë¦¬ê° 기ëíë ê²ê³¼ ë¤ë¥´ë¤ë ê²ì ìë¤ë©´ 참조(reference)ì pointerê° ë¤ë¥´ë¤ë ê²ì ìì ìì ê²ì´ë¤. - <informalexample> <programlisting role="php"> -function foo (&$var) { - $var =& $GLOBALS["baz"]; -} -foo($bar); - </programlisting> </informalexample> </para> <simpara> ìì ììì fooí¨ì ë´ì ë³ì<varname>$var</varname> ë í¨ì를 í¸ì¶í ììì ë³ì<varname>$bar</varname> ì ëì¼í ê°ì 참조íì§ë§ ê³§ì´ì´ ì ìë³ì<varname>$GLOBALS["baz"]</varname>ê° ì°¸ì¡°íë ê°ì 참조íëë¡ ë°ëë¤. ì´ì ì´ í¨ìë´ìì 참조ì ë©ì¹´ëì¦ì ì¬ì©íì¬ í¨ì를 í¸ì¶í ììì ë³ì<varname>$bar</varname> 를 참조í ì ìë ë°©ë²ì´ ìë¤. ë°ë¼ì í¨ì를 í¸ì¶í ììì ë³ì<varname>$bar</varname> ë í¨ì fooë´ììë 무ì 미í ì ë°ì ìë¤. (ì¦ í¨ì를 í¸ì¶í ììì ë³ìë í¨ìë´ì ë³ì<varname>$var</varname>ì ìí´ ëíë¼ì ìì§ë§,<varname>$var</varname> ë ë¨ì§ ë³ìê°ì´ì§ symbol tableì ì ìë ë³ìëª ì´ ìëë¤.) </simpara> </sect1> <sect1 id="language.references.pass"> <title>참조를 ì¬ì©í ì ë¬(Passing by Reference)</title> <para> 참조(reference)를 ì¬ì©íì¬ ë³ì를 í¨ìë¡ ë겨 ì ë¬(pass)í ì ìë¤. ê·¸ëì í¨ì ë´ìì ë³ìì ê°ì ìì í ì ìë¤. ë¤ìì´ ê·¸ ìì´ë¤.<informalexample> <programlisting role="php"> -function foo (&$var) { - $var++; -} - -$a=5; -foo ($a); -// $a is 6 here - </programlisting> </informalexample> í¨ì를 í¸ì¶í ë 참조를 ì´ì©íì¬ ë³ì를 ì ë¬(pass)íë¤ë ì´ë í íìë ìë¤ë ê²ì 주ìíì. ë¨ì§ í¨ì를 ì ì í ë ë³ì를 참조ì ìí´ ì ë¬ ë°ëë¤ë íìê° ìë¤. í¨ì를 ì ìí ë ì´ë¥¼ ì ì í¨ì¼ë¡ì¨ 참조ì ìí ë³ì ì ë¬ì´ ê°ë¥íë¤. </para> <para> 참조ì ìí´ ë³ì를 ë겨 주ë ë°©ë²ì ë¤ìì ì¸ê°ì§ ë°©ë²ì´ ìë¤: <itemizedlist> <listitem> <simpara> ë³ìì ìí ë°©ë², ì¦.<literal>foo($a)</literal> </simpara> </listitem> <listitem> <simpara> Newë¼ë 문ì¥ì ì´ì©íë ë°©ë², ì¦.<literal>foo(new foobar())</literal> </simpara> </listitem> <listitem> <para> í¨ìë¡ ë¶í° ë겨 ë°ë 참조ì ìí ë°©ë², ì¦. <informalexample> <programlisting role="php"> -function &bar() -{ - $a = 5; - return $a; -} -foo(bar()); - </programlisting> </informalexample><link linkend="language.references.return">참조ì ìí 리í´(returning by reference)</link>ì ìì¸í ì¤ëª ì ë³¼ì ìë¤. - </para> </listitem> </itemizedlist> </para> <para> ìì ëì´í ì¸ê°ì§ ë°©ë²ì¸ìë 참조ì ìí ì ë¬(pass)ì í ì ìë¤. ì를 ë¤ë©´ ìë ìì ê°ì ë°©ë²ì¼ë¡ 참조ì ìí ì ë¬ì ê·¸ ìë¯¸ê° ê·¸ ìë¯¸ê° ì ííì§ ëª»íë¤.<informalexample> <programlisting role="php"> -function bar() // & ê° ë¹ ì ¸ììì ì ìíì; -{ - $a = 5; - return $a; -} -foo(bar)); - -foo($a = 5) // ííì(Expression)ì ë³ìê° ìëë¤. -foo(5) // ìì(Constant)ë ë³ìê° ìëê°. - </programlisting> </informalexample> ì´ ëª¨ë ê²ì PHP 4.0.4 ì´ìì ë²ì ¼ì í´ë¹ëë¤. </para> </sect1> <sect1 id="language.references.return"> <title>ì°¸ì¡°ê° ë¦¬í´(Returning References)</title> <para> ì°¸ì¡°ê° ë¦¬í´ì ë³ìê° ì´ë¤ê°ì 참조íë ì§ë¥¼ ì°¾ë í¨ì를 ì¬ì©í ë ì ì©íë¤. ì°¸ì¡°ê° ë¦¬í´ì 문ë²ì ë¤ìê³¼ ê°ë¤<informalexample> <programlisting role="php"> -function &find_var ($param) { - ...code... - return $found_var; -} - -$foo =& find_var ($bar); -$foo->x = 2; - </programlisting> </informalexample> ìì ììì í¨ì<varname>find_var</varname>ì ìí´ ë¦¬í´ë ê°ì²´ì ìì±ì ë³µì¬ëì´ ì§ë ê²ì´ ìëë¼ ì ì(set)ëì´ ì§ë¤.참조ì 문ë²ì ì¬ì©íì§ ìê³ ë ê°ë¥íë¤.</para> <note> <simpara> ì°¸ì¡°ê° ë¦¬í´ ì´ë¼ë ê²ì íì í기ìí´ ì¸ìì ë¬ê³¼ë ë¬ë¦¬ í¨ì를 í¸ì¶íë 쪽과 í¸ì¶ëì´ì§ë í¨ì ì쪽ì <literal>&</literal>기í¸ê° ìì´ì¼ íë¤. ì´ë¡ ì¸í´ ì¼ë°ì ì¼ë¡ í¨ìê°ì 리í´ë°©ìì¸ ë³µì¬ì ìí ë°©ë²ì´ ìëë¼ ì°¸ì¡°ë¥¼ ì¬ì©í 리í´ì´<varname>$foo</varname>ë¡ ê°ë¥í´ ì§ ê²ì´ë¤. - </simpara> </note> </sect1> <sect1 id="language.references.unset"> <title>참조ì§ì ìì 기(Unsetting References)</title> <para> 참조ë ê°ì ìì ë ¤ë©´ ë³ìëª ê³¼ ê·¸ê° ê°ë¦¬í¤ë ë´ì©(content)ìì ì°ê²°ê³ 리를 ëì¼ë©´ ëë¤. ì´ë ê² íë¤ê³ í´ì ë³ìê° ê°ë¦¬í¤ë ë´ì© ìì²´ê° ìì´ì§ë¤ë ê²ì ì미íì§ë ìëë¤. ìëì ì를 ë³´ì: - <informalexample> <programlisting role="php"> -$a = 1; -$b =& $a; -unset ($a); - </programlisting> </informalexample> ë³ì<varname>$b</varname>ì 참조ë ê°ì ìì¤ê²ì´ ìëë¼ ë¨ì§ ë³ì<varname>$a</varname>ê° ì§ìíë ê²ì ìì´ë¤. - </para> <simpara> ë¤ìë§í´, ì´ë Unix ìì¤í ìì <command>unlink</command>를 í¸ì¶íë ê²ê³¼ ìë¹í ì ì¬íë¤. </simpara> </sect1> <sect1 id="language.references.spot"> <title>Spotting References</title> <simpara> - Many syntax constructs in PHP are implemented via referencing - mechanisms, so everything told above about reference binding also - apply to these constructs. Some constructs, like passing and - returning by-reference, are mentioned above. Other constructs that - use references are: - </simpara> <sect2 id="references.global"> <title> <literal>global</literal> References</title> <para> - When you declare variable as <command>global $var</command> you - are in fact creating reference to a global variable. That means, - this is the same as: - <informalexample> <programlisting role="php"> -$var =& $GLOBALS["var"]; - </programlisting> </informalexample> </para> <simpara> - That means, for example, that unsetting <varname>$var</varname> - won't unset global variable. - </simpara> </sect2> <sect2 id="references.this"> <title> <literal>$this</literal> </title> <simpara> - In an object method, <varname>$this</varname> is always reference - to the caller object. - </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 -sgml-parent-document:nil -sgml-default-dtd-file:"../../manual.ced" -sgml-exposed-tags:nil -sgml-local-catalogs:nil -sgml-local-ecat-files:nil -End: ---> \ No newline at end of file +<chapter id="language.references"> + <title>References Explained</title> + <sect1 id="language.references.whatare"> + <title>참조(Reference)ë 무ìì¸ê°.</title> + <simpara> + 참조ë PHPìì ëì¼í ê°ì ìë¡ë¤ë¥¸ ì´ë¦ì¼ë¡ access íë ê²ì ë§íë¤. + 참조ë Cì¸ì´ ììì pointerìë 구ë³ëë©°, simbol tableê³¼ ê°ë¤ê³ í ì ìë¤. PHP + ììë ë³ìëª ê³¼ ë³ìê°ì´ ë¤ë¥´ë¤ëê²ì 주ì í´ì¼ íë¤. ë°ë¼ì, ëì¼í + ë´ì©ì´ ë¤ë¥¸ ì´ë¦ì ê°ì§ì ìë¤. ì´ë ë³ìê°ì´ íì¼ì´ì§ë§ ë³ìëª ì + ëë í 리ì ììì¸ UNIXìì fileê³¼ filenameê³¼ì ê´ê³ì 매ì°ì ì¬íë¤. + 참조ë UNIX íì¼ ìì¤í ììì hardlinkingì¼ë¡ ìê°í ì ìë¤. + </simpara> + </sect1> + <sect1 id="language.references.whatdo"> + <title>ì°¸ì¡°ë¡ í ì ìëì¼ì(What References Do)</title> + <para> + 첫ë²ì§¸ë¡ PHPììì 참조ë ëê°ì ë¤ë¥¸ ë³ìê° ëì¼í ë´ì©(content)를 + ê°ë¦¬í¬ì ìê² íë¤. ë¤ìë§í´ ë¤ìê³¼ ê°ì 문ì¥ì´ ìë¤ë©´ + <informalexample> + <programlisting role="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> ë ëì¼í ìì¹ì ë´ì©(content)를 ì§ì¹íê³ ìë¤. + </para> + </note> + </para> + <para> + í¨ìììë ë³ììì ì ì©ëë ê²ê³¼ ëì¼íê² ì ì©ëë¤. +<literal>new</literal> + ë¼ë ì°ì°ì를 ì¬ì©íì¬ ì°¸ì¡°ë¥¼ ëë ¤ì¤ì ìë¤.(ì´ë PHP 4.0.4ì´í ë²ì ¼ì ì ì©ëë¤.) + <informalexample> + <programlisting role="php"> + $bar =& new fooclass(); + $foo =& find_var ($bar); + </programlisting> + </informalexample> + </para> + <note> + <para> + Unless you use the syntax above, the result of + <literal>$bar = new fooclass()</literal> will not be the same + variable as <literal>$this</literal> in the constructor, meaning + that if you have used reference to <literal>$this</literal> in + the constructor, you should use reference assignment, or you get + two different objects. + </para> + </note> + <para> + ì°¸ì¡°ë¡ í ì ìë ëë²ì§¸ ê²ì 참조ì ìí ë³ìì ì ë¬ì´ë¤. ì´ë í¨ì ë´ìì + + ìì±ë ì§ìë³ìì í¨ì를 í¸ì¶í ììì ë³ìê° ëì¼í ê°ì ê°ë¦¬í¤ê² í ì ìë¤. + ìëì ì를 ë³´ì +<informalexample> + <programlisting role="php"> + function foo (&$var) { + $var++; + } + + $a=5; + foo ($a); + </programlisting> + </informalexample><varname>$a</varname> ì ê°ì 6ì´ ëë¤. ì´ë í¨ì +<varname>foo</varname> ë´ì ì§ìë³ì + + <varname>$var</varname> ê° í¨ì를 í¸ì¶í ììì ë³ì + + <varname>$a</varname>ì ëì¼í ê°(content)ì 참조í기 ë문ì´ë¤. + +ì´ì ëí ì¢ ë ìì¸í ì¤ëª ì +<link linkend="language.references.pass">참조ì ìí ì ë¬(passing by reference)</link>ì íì¸í´ 보기 ë°ëë¤. + </para> + <simpara> ì¸ë²ì§¸ë¡ 참조ë¡ì í ì ìë ê²ì + +<link linkend="language.references.return">참조ì ìí return(return by reference)</link>ì´ë¤. + </simpara> + </sect1> + <sect1 id="language.references.arent"> + <title>참조를 ì¬ì©í¨ì ìì´ ì£¼ì í´ì¼ í ê²(What References Are Not)</title> + <para> + ìì ë§íë¯ì´ 참조ë C ì¸ì´ììì pointerìë ë¤ë¥´ë¤. ìëì ì를 ë³´ê³ + + ê·¸ ê²°ê³¼ê° ì°ë¦¬ê° 기ëíë ê²ê³¼ ë¤ë¥´ë¤ë ê²ì ìë¤ë©´ 참조(reference)ì + + pointerê° ë¤ë¥´ë¤ë ê²ì ìì ìì ê²ì´ë¤. + <informalexample> + <programlisting role="php"> + function foo (&$var) { + $var =& $GLOBALS["baz"]; + } + foo($bar); + </programlisting> + </informalexample> + </para> + <simpara> ìì ììì fooí¨ì ë´ì ë³ì +<varname>$var</varname> ë í¨ì를 í¸ì¶í ììì ë³ì + +<varname>$bar</varname> ì ëì¼í ê°ì 참조íì§ë§ + + ê³§ì´ì´ ì ìë³ì + +<varname>$GLOBALS["baz"]</varname>ê° ì°¸ì¡°íë ê°ì 참조íëë¡ ë°ëë¤. + + ì´ì ì´ í¨ìë´ìì 참조ì ë©ì¹´ëì¦ì ì¬ì©íì¬ í¨ì를 í¸ì¶í ììì ë³ì + +<varname>$bar</varname> 를 참조í ì ìë ë°©ë²ì´ ìë¤. ë°ë¼ì + + í¨ì를 í¸ì¶í ììì ë³ì +<varname>$bar</varname> ë í¨ì fooë´ììë 무ì 미í ì ë°ì ìë¤. + + (ì¦ í¨ì를 í¸ì¶í ììì ë³ìë í¨ìë´ì ë³ì + +<varname>$var</varname>ì ìí´ ëíë¼ì ìì§ë§, +<varname>$var</varname> ë ë¨ì§ ë³ìê°ì´ì§ symbol tableì ì ìë ë³ìëª ì´ ìëë¤.) + + </simpara> + </sect1> + <sect1 id="language.references.pass"> + <title>참조를 ì¬ì©í ì ë¬(Passing by Reference)</title> + <para> 참조(reference)를 ì¬ì©íì¬ ë³ì를 í¨ìë¡ ë겨 ì ë¬(pass)í ì ìë¤. ê·¸ëì + + í¨ì ë´ìì ë³ìì ê°ì ìì í ì ìë¤. ë¤ìì´ ê·¸ ìì´ë¤. +<informalexample> + <programlisting role="php"> + function foo (&$var) { + $var++; + } + + $a=5; + foo ($a); + // $a is 6 here + </programlisting> + </informalexample> + í¨ì를 í¸ì¶í ë 참조를 ì´ì©íì¬ ë³ì를 ì ë¬(pass)íë¤ë ì´ë í íìë ìë¤ë ê²ì 주ìíì. + + ë¨ì§ í¨ì를 ì ì í ë ë³ì를 참조ì ìí´ ì ë¬ ë°ëë¤ë íìê° ìë¤. í¨ì를 ì ìí ë ì´ë¥¼ + + ì ì í¨ì¼ë¡ì¨ 참조ì ìí ë³ì ì ë¬ì´ ê°ë¥íë¤. + </para> + <para> + 참조ì ìí´ ë³ì를 ë겨 주ë ë°©ë²ì ë¤ìì ì¸ê°ì§ ë°©ë²ì´ ìë¤: + <itemizedlist> + <listitem> + <simpara> ë³ìì ìí ë°©ë², ì¦. + +<literal>foo($a)</literal> + </simpara> + </listitem> + <listitem> + <simpara> Newë¼ë 문ì¥ì ì´ì©íë ë°©ë², ì¦. +<literal>foo(new foobar())</literal> + </simpara> + </listitem> + <listitem> + <para> í¨ìë¡ ë¶í° ë겨 ë°ë 참조ì ìí ë°©ë², ì¦. + <informalexample> + <programlisting role="php"> + function &bar() + { + $a = 5; + return $a; + } + foo(bar()); + </programlisting> + </informalexample><link linkend="language.references.return">참조ì ìí 리í´(returning by reference)</link>ì ìì¸í ì¤ëª ì ë³¼ì ìë¤. + </para> + </listitem> + </itemizedlist> + </para> + <para> ìì ëì´í ì¸ê°ì§ ë°©ë²ì¸ìë 참조ì ìí ì ë¬(pass)ì í ì ìë¤. + + ì를 ë¤ë©´ ìë ìì ê°ì ë°©ë²ì¼ë¡ 참조ì ìí ì ë¬ì ê·¸ ìë¯¸ê° ê·¸ ìë¯¸ê° ì ííì§ ëª»íë¤. +<informalexample> + <programlisting role="php"> + function bar() // & ê° ë¹ ì ¸ììì ì ìíì; + { + $a = 5; + return $a; + } + foo(bar)); + + foo($a = 5) // ííì(Expression)ì ë³ìê° ìëë¤. + foo(5) // ìì(Constant)ë ë³ìê° ìëê°. + </programlisting> + </informalexample> ì´ ëª¨ë ê²ì PHP 4.0.4 ì´ìì ë²ì ¼ì í´ë¹ëë¤. + </para> + </sect1> + <sect1 id="language.references.return"> + <title>ì°¸ì¡°ê° ë¦¬í´(Returning References)</title> + <para> + ì°¸ì¡°ê° ë¦¬í´ì ë³ìê° ì´ë¤ê°ì 참조íë ì§ë¥¼ ì°¾ë í¨ì를 ì¬ì©í ë + + ì ì©íë¤. ì°¸ì¡°ê° ë¦¬í´ì 문ë²ì ë¤ìê³¼ ê°ë¤ +<informalexample> + <programlisting role="php"> + function &find_var ($param) { + ...code... + return $found_var; + } + + $foo =& find_var ($bar); + $foo->x = 2; + </programlisting> + </informalexample> + ìì ììì í¨ì +<varname>find_var</varname>ì ìí´ ë¦¬í´ë ê°ì²´ì ìì±ì ë³µì¬ëì´ ì§ë ê²ì´ ìëë¼ ì ì(set)ëì´ ì§ë¤. + +참조ì 문ë²ì ì¬ì©íì§ ìê³ ë ê°ë¥íë¤. + +</para> + <note> + <simpara> + ì°¸ì¡°ê° ë¦¬í´ ì´ë¼ë ê²ì íì í기ìí´ ì¸ìì ë¬ê³¼ë ë¬ë¦¬ í¨ì를 í¸ì¶íë + + 쪽과 í¸ì¶ëì´ì§ë í¨ì ì쪽ì + <literal>&</literal>기í¸ê° ìì´ì¼ íë¤. + +ì´ë¡ ì¸í´ ì¼ë°ì ì¼ë¡ í¨ìê°ì 리í´ë°©ìì¸ ë³µì¬ì ìí ë°©ë²ì´ ìëë¼ + + 참조를 ì¬ì©í 리í´ì´ +<varname>$foo</varname>ë¡ ê°ë¥í´ ì§ ê²ì´ë¤. + </simpara> + </note> + </sect1> + <sect1 id="language.references.unset"> + <title>참조ì§ì ìì 기(Unsetting References)</title> + <para> + 참조ë ê°ì ìì ë ¤ë©´ ë³ìëª ê³¼ ê·¸ê° ê°ë¦¬í¤ë ë´ì©(content)ìì ì°ê²°ê³ 리를 + + ëì¼ë©´ ëë¤. ì´ë ê² íë¤ê³ í´ì ë³ìê° ê°ë¦¬í¤ë ë´ì© ìì²´ê° ìì´ì§ë¤ë ê²ì + + ì미íì§ë ìëë¤. ìëì ì를 ë³´ì: + <informalexample> + <programlisting role="php"> + $a = 1; + $b =& $a; + unset ($a); + </programlisting> + </informalexample> ë³ì +<varname>$b</varname>ì 참조ë ê°ì ìì¤ê²ì´ ìëë¼ ë¨ì§ ë³ì +<varname>$a</varname>ê° ì§ìíë ê²ì ìì´ë¤. + </para> + <simpara> ë¤ìë§í´, ì´ë Unix ìì¤í ìì + <command>unlink</command>를 í¸ì¶íë ê²ê³¼ ìë¹í ì ì¬íë¤. + + </simpara> + </sect1> + <sect1 id="language.references.spot"> + <title>Spotting References</title> + <simpara> + Many syntax constructs in PHP are implemented via referencing + mechanisms, so everything told above about reference binding also + apply to these constructs. Some constructs, like passing and + returning by-reference, are mentioned above. Other constructs that + use references are: + </simpara> + <sect2 id="references.global"> + <title> + <literal>global</literal> References</title> + <para> + When you declare variable as <command>global $var</command> you + are in fact creating reference to a global variable. That means, + this is the same as: + <informalexample> + <programlisting role="php"> + $var =& $GLOBALS["var"]; + </programlisting> + </informalexample> + </para> + <simpara> + That means, for example, that unsetting <varname>$var</varname> + won't unset global variable. + </simpara> + </sect2> + <sect2 id="references.this"> + <title> + <literal>$this</literal> + </title> + <simpara> + In an object method, <varname>$this</varname> is always reference + to the caller object. + </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 + sgml-parent-document:nil + sgml-default-dtd-file:"../../manual.ced" + sgml-exposed-tags:nil + sgml-local-catalogs:nil + sgml-local-ecat-files:nil + End: + -->