tom Tue May 7 08:18:08 2002 EDT Modified files: /phpdoc-de/language oop.xml Log: finished translation
Index: phpdoc-de/language/oop.xml diff -u phpdoc-de/language/oop.xml:1.10 phpdoc-de/language/oop.xml:1.11 --- phpdoc-de/language/oop.xml:1.10 Sun Apr 7 06:04:16 2002 +++ phpdoc-de/language/oop.xml Tue May 7 08:18:08 2002 @@ -695,44 +695,44 @@ </sect1> <sect1 id="language.oop.magic-functions"> - <title>The magic functions <literal>__sleep</literal> and <literal>__wakeup</literal></title> + <title>Die "magischen" Funktionen <literal>__sleep</literal> und +<literal>__wakeup</literal></title> <para> - <function>serialize</function> checks if your class has a function with - the magic name <literal>__sleep</literal>. If so, that function is - being run prior to any serialization. It can clean up the object - and is supposed to return an array with the names of all variables - of that object that should be serialized. + <function>serialize</function> prüft, ob Ihre Klasse eine Funktion mit + dem magischen Namen <literal>__sleep</literal> enthält. Wenn dem so ist, + wird diese Funktion vor einer Serialisierung ausgeführt. Sie kann das + Objekt aufräumen und soll ein Array mit den Namen aller Variablen des + zu serialisierenden Objektes zurückgeben. </para> <para> - The intended use of <literal>__sleep</literal> is to close any - database connections that object may have, committing pending - data or perform similar cleanup tasks. Also, the function is - useful if you have very large objects which need not be - saved completely. + Die beabsichtigte Verwendung von <literal>__sleep</literal> ist, + eventuelle Datenbankverbindungen des Objektes zu schließen, noch + offene Daten zu committen, oder ähnliche Säuberungsaktionen + durchzuführen. Weiters ist diese Funktion hilfreich, wenn Sie + sehr große Objekte haben, die nicht komplett gespeichert werden + müssen. </para> <para> - Conversely, <function>unserialize</function> checks for the - presence of a function with the magic name - <literal>__wakeup</literal>. If present, this function can - reconstruct any resources that object may have. + Umgekehrt prüft <function>unserialize</function> die Existenz einer + Funktion mit dem magischen Namen <literal>__wakeup</literal>. Ist + diese vorhanden, kann sie Ressourcen des Objektes rekonstruieren. </para> <para> - The intended use of <literal>__wakeup</literal> is to - reestablish any database connections that may have been lost - during serialization and perform other reinitialization - tasks. + Die vorgesehene Verwendung von <literal>__wakeup</literal> ist die + Wiederherstellung von Datenbankverbindungen, welche während der + Serialisierung verloren gegangen sein könnten, sowie andere + Neuinitialisierungen. </para> </sect1> <sect1 id="language.oop.newref"> - <title>References inside the constructor</title> + <title>Referenzen innherhalb des Konstruktors</title> <para> - Creating references within the constructor can lead to confusing - results. This tutorial-like section helps you to avoid problems. + Referenzen innerhalb des Konstruktors können zu verwirrenden + Resultaten führen. Dieser Abschnitt hilft, Probleme zu vermeiden. <informalexample> <programlisting role="php"> @@ -741,12 +741,12 @@ { function Foo($name) { - // create a reference inside the global array $globalref + // eine Referenz innerhalb des globalen Arrays $globalref erstellen global $globalref; $globalref[] = &$this; - // set name to passed value + // setze den Namen auf den übergebenen Wert $this->setName($name); - // and put it out + // und gib' ihn aus $this->echoName(); } @@ -766,11 +766,10 @@ </para> <para> - Let us check out if there is a difference between - <varname>$bar1</varname> which has been created using - the copy <literal>=</literal> operator and - <varname>$bar2</varname> which has been created using - the reference <literal>=&</literal> operator... + Prüfen wir, ob zwischen <varname>$bar1</varname>, die mittels + dem Operator zum Kopieren <literal>=</literal> erstellt wurde, + und <varname>$bar2</varname>, die mittels dem Referenzoperator + <literal>=&</literal> erstellt wurde, besteht... <informalexample> <programlisting role="php"> @@ -779,7 +778,7 @@ $bar1->echoName(); $globalref[0]->echoName(); -/* output: +/* Ausgabe: set in constructor set in constructor set in constructor */ @@ -788,7 +787,7 @@ $bar2->echoName(); $globalref[1]->echoName(); -/* output: +/* Ausgabe: set in constructor set in constructor set in constructor */ @@ -797,49 +796,50 @@ </informalexample> </para> <para> - Apparently there is no difference, but in fact there is a - very significant one: <varname>$bar1</varname> and - <varname>$globalref[0]</varname> are _NOT_ referenced, they - are NOT the same variable. This is because "new" does not - return a reference by default, instead it returns a copy. + Scheinbar besteht kein Unterschied, aber tatsächlich existiert ein + signifikanter: <varname>$bar1</varname> und + <varname>$globalref[0]</varname> sind NICHT referenziert, d.h. sie + sind NICHT die selbe Variable. Das kommt daher, dass "new" nicht + automatisch eine Referenz, sondern eine Kopie zurückgibt. <note> <simpara> - There is no performance loss (since PHP 4 and up use reference - counting) returning copies instead of references. On the - contrary it is most often better to simply work with copies - instead of references, because creating references takes some - time where creating copies virtually takes no time (unless none - of them is a large array or object and one of them gets changed - and the other(s) one(s) subsequently, then it would be wise to - use references to change them all concurrently). + Das zurückgeben von Kopien anstatt von Referenzen stellt keinen + Performanceverlust dar (da PHP 4 und höher Reference Counting + verwendet). Andererseits ist es sehr oft besser, einfach mit Kopien + anstatt mit Referenzen zu arbeiten, da die Erstellung von Referenzen + etwas Zeit in Anspruch nimmt, während das Erstellen von Kopien so gut + wie keine Zeit braucht (sofern keine von ihnen ein großes Array oder + Objekt ist, und eines davon geändert wird und das/die andere/n + nachträglich. In diesem Fall wäre es besser, Referenzen zu verwenden, + um sie alle gleichzeitig zu ändern). </simpara> </note> - To prove what is written above let us watch the code below. + Um das zuvor geschriebene zu beweisen, sehen wir uns den folgenden Code an. <informalexample> <programlisting role="php"> <![CDATA[ -// now we will change the name. what do you expect? -// you could expect that both $bar1 and $globalref[0] change their names... +// nun werden wir den Namen ändern. Was erwarten Sie? +// ...dass sowohl $bar1, als auch $globalref[0] ihre Namen ändern... $bar1->setName('set from outside'); -// as mentioned before this is not the case. +// wie bereits zuvor erwähnt, ist dies nicht der Fall $bar1->echoName(); $globalref[0]->echoName(); -/* output: +/* Ausgabe: set from outside set in constructor */ -// let us see what is different with $bar2 and $globalref[1] +// lassen Sie uns den Unterschied zwischen $bar2 and $globalref[1] ansehen $bar2->setName('set from outside'); -// luckily they are not only equal, they are the same variable -// thus $bar2->name and $globalref[1]->name are the same too +// glücklicherweise sind sie nicht nur nicht gleich, sondern auch die selbe +// Variable; demnach sind $bar2->name und $globalref[1]->name ebenfalls gleich $bar2->echoName(); $globalref[1]->echoName(); -/* output: +/* Ausgabe: set from outside set from outside */ ]]> @@ -847,7 +847,7 @@ </informalexample> </para> <para> - Another final example, try to understand it. + Ein anderes, letztes Beispiel zum Verständnis: <informalexample> <programlisting role="php"> @@ -857,7 +857,7 @@ function A($i) { $this->value = $i; - // try to figure out why we do not need a reference here + // finden Sie heraus, warum wir hier keine Referenz benötigen $this->b = new B($this); } @@ -886,8 +886,8 @@ } } -// try to undestand why using a simple copy here would yield -// in an undesired result in the *-marked line +// überlegen Sie, warum hier die Verwendung einer einfachen Kopie in der +// mit * markierten Zeile zu einem unerwünschten Ergebnis führen würde $a =& new A(10); $a->createRef(); @@ -902,7 +902,7 @@ $a->c->echoValue(); /* -output: +Ausgabe: class A: 10 class B: 10 class B: 10