svn: /phpdoc/de/trunk/language/ predefined/throwable/getfile.xml types/callable.xml types/float.xml
[email protected] (Oliver Albers)
| Newsgroups | php.doc.de |
|---|---|
| Message-ID | <[email protected]> |
simp Sun, 03 Mar 2019 19:36:45 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=346967
Log:
Translate types
Changed paths:
U phpdoc/de/trunk/language/predefined/throwable/getfile.xml
A phpdoc/de/trunk/language/types/callable.xml
A phpdoc/de/trunk/language/types/float.xml
svn-diffs-346967.txt
(text/x-diff, 12.7 KB)
Modified: phpdoc/de/trunk/language/predefined/throwable/getfile.xml
===================================================================
--- phpdoc/de/trunk/language/predefined/throwable/getfile.xml 2019-03-03 13:49:34 UTC (rev 346966)
+++ phpdoc/de/trunk/language/predefined/throwable/getfile.xml 2019-03-03 19:36:45 UTC (rev 346967)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 341756 Maintainer: simp Status: ready -->
+<!-- EN-Revision: 346964 Maintainer: simp Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="throwable.getfile" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
Added: phpdoc/de/trunk/language/types/callable.xml
===================================================================
--- phpdoc/de/trunk/language/types/callable.xml (rev 0)
+++ phpdoc/de/trunk/language/types/callable.xml 2019-03-03 19:36:45 UTC (rev 346967)
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 341282 Maintainer: simp Status: ready -->
+<!-- Reviewed: no -->
+
+<sect1 xml:id="language.types.callable">
+ <title>Callbacks / Callables</title>
+
+ <para>
+ Callbacks können seit PHP 5.4 mit dem Type-Hint <type>callable</type>
+ gekennzeichnet werden. Diese Dokumentation verwendete auch die Typinformation
+ <type>callback</type> für diesen Zweck.
+ </para>
+
+ <para>
+ Einige Funktionen wie <function>call_user_func</function> oder
+ <function>usort</function> akzeptieren eine benutzerdefinierte
+ Callback-Funktion als Argument. Fallback-Funktionen können nicht nur
+ einfache Funktionen sein, sondern auch Methoden eines
+ <type>Object</type>s, inklusive statischer Klassenmethoden.
+ </para>
+
+ <sect2 xml:id="language.types.callable.passing">
+ <title>Übergabe</title>
+
+ <para>
+ Eine PHP-Funktion wird anhand ihres Namens als <type>String</type>
+ übergeben. Jede eingebaute oder benutzerdefinierte Funktion kann
+ verwendet werden, außer Sprachekonstrukten wie:
+ <function>array</function>, <function>echo</function>,
+ <function>empty</function>, <function>eval</function>,
+ <function>exit</function>, <function>isset</function>,
+ <function>list</function>, <function>print</function> oder
+ <function>unset</function>.
+ </para>
+
+ <para>
+ Eine Methode eines instantiierten <type>Object</type>s wird
+ übergeben als <type>Array</type> mit dem <type>Object</type>
+ an Index-Position 0 und dem Methodennamen an Position 1. Der Zugriff
+ auf als protected oder private markierte Methoden von innerhalb
+ der Klasse ist erlaubt.
+ </para>
+
+ <para>
+ Statische Klassenmethoden können auch übergeben werden, ohne dann ein
+ <type>Object</type> dieser Klasse instantiiert werden muss, indem
+ man den Namen der Klasse statt eines <type>Object</type>s an
+ Index 0 übergibt.
+ Seit PHP 5.2.3 kann man auch <literal>'ClassName::methodName'</literal>
+ übergeben.
+ </para>
+
+ <para>
+ Neben den üblichen benutzerdefiniersten Funktionen können auch
+ <link linkend="functions.anonymous">anonyme Funktionen</link>
+ als Callback-Agumente übergeben werden.
+ </para>
+
+ <para>
+ <example>
+ <title>
+ Beisviele für Ballback-Funktionen
+ </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// Eine Beispiel-Callback-Funktion
+function my_callback_function() {
+ echo 'hello world!';
+}
+
+// Eine Beispiel-Callback-Methode
+class MyClass {
+ static function myCallbackMethod() {
+ echo 'Hello World!';
+ }
+}
+
+// Typ 1: Einfaches Callback
+call_user_func('my_callback_function');
+
+// Typ 2: Statischer Methodenaufruf
+call_user_func(array('MyClass', 'myCallbackMethod'));
+
+// Typ 3: Aufruf einer Objektmethode
+$obj = new MyClass();
+call_user_func(array($obj, 'myCallbackMethod'));
+
+// Typ 4: Statischer Methodenaufruf (Seit PHP 5.2.3)
+call_user_func('MyClass::myCallbackMethod');
+
+// Typ 5: Relativer statischer Methodenaufruf (Seit PHP 5.3.0)
+class A {
+ public static function who() {
+ echo "A\n";
+ }
+}
+
+class B extends A {
+ public static function who() {
+ echo "B\n";
+ }
+}
+
+call_user_func(array('B', 'parent::who')); // A
+
+// Typ 6: Objekte die __invoke implementieren können als Callable verwendet werden (seit PHP 5.3)
+class C {
+ public function __invoke($name) {
+ echo 'Hello ', $name, "\n";
+ }
+}
+
+$c = new C();
+call_user_func($c, 'PHP!');
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title>
+ Fallback-Beispiel mit einem Closure
+ </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// Unser Closure
+$double = function($a) {
+ return $a * 2;
+};
+
+// Dies ist unsere Menge an Zahlen
+$numbers = range(1, 5);
+
+// Hier verwenden wir das Callback, um
+// den Wert jedes Elements in unserer
+// Menge zu verdoppeln
+$new_numbers = array_map($double, $numbers);
+
+print implode(' ', $new_numbers);
+?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+2 4 6 8 10
+]]>
+ </screen>
+ </example>
+ </para>
+
+ ¬e.func-callback-exceptions;
+ </sect2>
+
+</sect1>
+
+<!-- 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
+-->
Property changes on: phpdoc/de/trunk/language/types/callable.xml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
\ No newline at end of property
Added: phpdoc/de/trunk/language/types/float.xml
===================================================================
--- phpdoc/de/trunk/language/types/float.xml (rev 0)
+++ phpdoc/de/trunk/language/types/float.xml 2019-03-03 19:36:45 UTC (rev 346967)
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision$ -->
+<!-- EN-Revision: 345104 Maintainer: simp Status: ready -->
+<!-- Reviewed: no -->
+
+<sect1 xml:id="language.types.float" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Gleitkommazahlen</title>
+
+ <para>
+ Gleitkommazahlen (auch als "floats", "doubles" oder "reelle Zahlen" bezeichnet)
+ können anhand einer der folgenden Schreibweisen bezeichnet werden:
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$a = 1.234;
+$b = 1.2e3;
+$c = 7E-10;
+?>
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Formell:
+ </para>
+
+ <informalexample>
+ <programlisting>
+<![CDATA[
+LNUM [0-9]+
+DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+]]>
+ </programlisting>
+ </informalexample>
+
+ <para>
+ Die Größe einer Gleitkommazahl ist plattformabhängig, ein Maximalwert von circa
+ 1.8e308 mit einer Präzision von ungefähr 14 Dezimal-Nachkommastellen ist jedoch
+ ein üblicher Wert (64-Bit IEEE-Format).
+ </para>
+
+ <warning xml:id="warn.float-precision">
+ <title>Genauigkeit von Gleitkommazahlen</title>
+
+ <para>
+ Gleitkommazahlen haben eine begrenzte Präzision. Obgleich dies vom System
+ abhängig ist, verwendet PHP üblicherweise das IEEE 754 Double Precision
+ Format, welches einen maximalen relativen Rundungsfehler in einer Größenordnung
+ en 1.11e-16 ergibt. Nicht-Elementare arithmetische Operationen können jedoch
+ größere Fehler hervorgerufen und natürlich muss eine Fortpflanzung des Fehlers
+ berücksichtigt werden, wenn mehrere Operationen zusammengesetzt werden.
+ </para>
+
+ <para>
+ Außerdem gibt es rationale Zahlen die zur Basis 10 als Gleitkommazahlen exakt
+ dargestellt werden können, beispielsweise <literal>0.1</literal> or
+ <literal>0.7</literal>, für die es aber keine exakte Repräsentation als
+ Gleitkommazahlen zur Basis 2 gibt, welche intern aber unabhängig von der Größe
+ der Mantisse verwendet wird. Daher können Sie nicht ohne einen geringen
+ Präzisionsverlust in ihre intern binäre Darstellung umgewandelt werden.
+ Dies kann zu verwirrendenErgebnissen führen:
+ <literal>floor((0.1+0.7)*10)</literal> wird üblicherweise
+ <literal>7</literal> ergeben statt des erwarteten Ergebnises von
+ <literal>8</literal>, da die interne Repräsentation etwas ist wie
+ <literal>7.9999999999999991118...</literal>.
+ </para>
+
+ <para>
+ Man sollte sich daher niemals bis zur letzten Nachkommastelle auf
+ Fließkommazahlen verlassen und Fließkommazahlen niemals direkt auf Gleichheit
+ prüfen. Wenn eine höhere Präzision notwendig ist, stehen die
+ <link linkend="ref.bc">Mathematikfunktionen mit beliebiger Präzision</link> und
+ <link linkend="ref.gmp">gmp</link>-Funktionen zur Verfügung.
+ </para>
+
+ <para>
+ Für eine "einfache" Erklärung, steht der Ratgeber
+ <link xlink:href="&url.floating.point.guide;">Floating Point Guide</link> zur
+ Verfügung, welchee auch den Titel hat "Why don’t my numbers add up?"
+ </para>
+ </warning>
+
+ <sect2 xml:id="language.types.float.casting">
+ <title>Konvertierung in float</title>
+
+ <para>
+ Informationen zur Konvertierung von <type>String</type>s zu
+ <type>Float</type>s findet man unter
+ <link linkend="language.types.string.conversion">Konvertierung von
+ Zeichenketten zu Zahlen</link>. Werte alle anderen Typen werden
+ konvertiert, indem der Wert zuerst in den Typ <type>Integer</type>
+ konvertiert wird und dieser anschließend zu <type>Float</type>.
+ Weitere Informationen findet man unter
+ <link linkend="language.types.integer.casting">Konvertierung in Integer</link>.
+ Seid PHP 5 wird eine Notice erzeugt, wenn ein <type>Object</type> in
+ einen <type>Float</type> konvertiert wird.
+ </para>
+
+ </sect2>
+
+ <sect2 xml:id="language.types.float.comparison">
+ <title>Gleitkommazahlen vergleichen</title>
+
+ <para>
+ Wie in der obigen Warnung bereits dargestellt, ist es problematisch
+ Gleitkommazahlen auf Gleichheit zu überprüfen, aufgrund ihrer internen
+ Darstellungsart. Es gibt allerdings Wege diese Vergleiche von
+ Gleitkommazahlen anzustellen, die diese Beschränkungen umgehen.
+ </para>
+
+ <para>
+ Um Gleitkommazahlen auf Gleichheit zu prüfen, wird eine obere Schranke
+ für den Rundungsfehler verwendet. Dieser Wert ist bekannt als
+ Maschinengenauigkeit Epsilon bekannt und stellt die kleinste annehmbare
+ Differenz in der Berechnung dar.
+ </para>
+
+ <informalexample>
+ <simpara>
+ <varname>$a</varname> und <varname>$b</varname> sind bis auf 5 Nachkommastellen gleich.
+ </simpara>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$a = 1.23456789;
+$b = 1.23456780;
+$epsilon = 0.00001;
+
+if(abs($a-$b) < $epsilon) {
+ echo "true";
+}
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </sect2>
+
+ <sect2 xml:id="language.types.float.nan">
+ <title>NaN</title>
+ <para>
+ Einige numerische Operationen können einen Wert ergeben der durch
+ die Konstante <constant>NAN</constant> repräsentiert wird. Dieses Ergebnis
+ repräsentiert einen undefinierten oder nicht darstellbaren wert in
+ den FließkommbBerechnungen. Jeder strikte oder nicht strikte Vergleich dieses Werts
+ mit jedem beliebigen anderen Wert, inklusive sich selbst, nur nicht &true;,
+ wird ein Ergebnis von &false; hervorbringen.
+ </para>
+ <para>
+ Da <constant>NAN</constant> eine beliebige Anzahl von anderen Werten darstellen
+ kann, sollte <constant>NAN</constant> nicht mit anderen Werten verglichen werden,
+ einschließlich sich selbst. Stattdessen sollte zur Prüfung
+ <function>is_nan</function> verwendet werden.
+ </para>
+ </sect2>
+</sect1>
+
+<!-- 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
+-->
Property changes on: phpdoc/de/trunk/language/types/float.xml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL
\ No newline at end of property