cvs: phpdoc /de/language references.xml

From: Date: Wed, 12 Dec 2001 21:32:14 +0000
Subject: cvs: phpdoc /de/language references.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969339684@lists.php.net to get a copy of this message
jan Wed Dec 12 16:32:14 2001 EDT Modified files: /phpdoc/de/language references.xml Log: updated translatein (& with new) and fixed CDATA sections Index: phpdoc/de/language/references.xml diff -u phpdoc/de/language/references.xml:1.10 phpdoc/de/language/references.xml:1.11 --- phpdoc/de/language/references.xml:1.10 Wed Dec 12 15:46:23 2001 +++ phpdoc/de/language/references.xml Wed Dec 12 16:32:14 2001 @@ -28,7 +28,9 @@ <informalexample> <programlisting role="php"> +<![CDATA[ $a =&amp; $b +]]> </programlisting> </informalexample> @@ -43,18 +45,44 @@ </note> </para> <para> + Seit PHP 4.0.4 kann <literal>&</literal> auch in Verbindung mit + <literal>new</literal> verwendet werden. + <informalexample> + <programlisting role="php"> +<![CDATA[ +$bar =& new fooclass(); +$foo =& find_var ($bar); +]]> + </programlisting> + </informalexample> + </para> + <note> + <para> + Wenn der <literal>&</literal> Operator nicht verwendet wird, erzeugt + PHP eine Kopie des Objekts. Wenn nun <literal>$this</literal> innerhalb + der Klasse verwendet wird, bezieht es sich auf die aktuelle Instanz der + Klasse. Die Zuordnung ohne <literal>&</literal> erzeugt eine Kopie der + Instanz (d.h. des Objekts) und <literal>$this</literal> wird sich auf + die Kopie beziehen. In der Regel will man aus Performance- und + Speicherverbrausgr&uuml;nden nur eine einzige Instanz einer Klasse + erzeugen. Daf&uuml;r stellt PHP den <literal>&</literal> bereit. + </para> + </note> + Eine weitere Einsatzm&ouml;glichkeit von Referenzen ist die &Uuml;bergabe von Parametern an eine Funktion mit pass-by-reference. Hierbei beziehen sich der lokale Variablenname als auch der Variablenname der aufrufenden Instanz auf denselben Variableninhalt: <informalexample> <programlisting role="php"> +<![CDATA[ function foo (&amp;$var) { $var++; } $a=5; foo ($a); +]]> </programlisting> </informalexample> Nach der Ausf&uuml;hrung hat <varname>$a</varname> den Wert 6, da sich @@ -77,10 +105,12 @@ erwarten w&uuml;rde: <informalexample> <programlisting role="php"> +<![CDATA[ function foo (&amp;$var) { $var =&amp; $GLOBALS["baz"]; } foo($bar); +]]> </programlisting> </informalexample> </para> @@ -106,6 +136,7 @@ Syntax zu beachten: <informalexample> <programlisting role="php"> +<![CDATA[ function &amp;find_var ($param) { ...code... return $found_var; @@ -113,6 +144,7 @@ $foo =&amp; find_var ($bar); $foo->x = 2; +]]> </programlisting> </informalexample> In diesem Beispiel wird also die Eigenschaft des von @@ -137,9 +169,11 @@ wird hierbei nicht gel&ouml;scht. Betrachten wir folgendes Beispiel: <informalexample> <programlisting role="php"> +<![CDATA[ $a = 1; $b =&amp; $a; unset ($a); +]]> </programlisting> </informalexample> Die Variable <varname>$b</varname> wird nicht gel&ouml;scht, sondern es @@ -170,7 +204,9 @@ sie ist also &auml;quivalent zu folgendem: <informalexample> <programlisting role="php"> +<![CDATA[ $var =&amp; $GLOBALS["var"]; +]]> </programlisting> </informalexample> </para>

« previous php.doc (#969339684) next »