[PHP-DOC] cvs: phpdoc /de chapters.ent /de/functions errorfunc.xml funchand.xml info.xml misc.xml var.xml From: Egon Schmid (eschmid <email protected>)
Date: 09/08/00

eschmid Fri Sep 8 13:02:12 2000 EDT

  Added files:
    /phpdoc/de/functions funchand.xml errorfunc.xml

  Modified files:
    /phpdoc/de chapters.ent
    /phpdoc/de/functions var.xml info.xml misc.xml
  Log:
  Moved some functions around.
  
Index: phpdoc/de/chapters.ent
diff -u phpdoc/de/chapters.ent:1.15 phpdoc/de/chapters.ent:1.16
--- phpdoc/de/chapters.ent:1.15 Wed Sep 6 07:53:42 2000
+++ phpdoc/de/chapters.ent Fri Sep 8 13:02:12 2000
@@ -31,25 +31,27 @@
 <!ENTITY reference.array SYSTEM "functions/array.xml">
 <!ENTITY reference.aspell SYSTEM "functions/aspell.xml">
 <!ENTITY reference.bc SYSTEM "functions/bc.xml">
+<!ENTITY reference.calendar SYSTEM "functions/calendar.xml">
 <!ENTITY reference.ccvs SYSTEM "functions/ccvs.xml">
-<!ENTITY reference.com SYSTEM "functions/com.xml">
 <!ENTITY reference.classobj SYSTEM "functions/classobj.xml">
+<!ENTITY reference.com SYSTEM "functions/com.xml">
 <!ENTITY reference.cpdf SYSTEM "functions/cpdf.xml">
 <!ENTITY reference.curl SYSTEM "functions/curl.xml">
 <!ENTITY reference.cybercash SYSTEM "functions/cybercash.xml">
 <!ENTITY reference.datetime SYSTEM "functions/datetime.xml">
-<!ENTITY reference.dbase SYSTEM "functions/dbase.xml">
 <!ENTITY reference.dba SYSTEM "functions/dba.xml">
+<!ENTITY reference.dbase SYSTEM "functions/dbase.xml">
 <!ENTITY reference.dbm SYSTEM "functions/dbm.xml">
-<!ENTITY reference.domxml SYSTEM "functions/domxml.xml">
-<!ENTITY reference.calendar SYSTEM "functions/calendar.xml">
 <!ENTITY reference.dir SYSTEM "functions/dir.xml">
-<!ENTITY reference.dl SYSTEM "functions/dl.xml">
+<!-- ENTITY reference.dl SYSTEM "functions/dl.xml" -->
+<!ENTITY reference.domxml SYSTEM "functions/domxml.xml">
+<!ENTITY reference.errorfunc SYSTEM "functions/errorfunc.xml">
 <!ENTITY reference.exec SYSTEM "functions/exec.xml">
 <!ENTITY reference.fdf SYSTEM "functions/fdf.xml">
 <!ENTITY reference.filepro SYSTEM "functions/filepro.xml">
 <!ENTITY reference.filesystem SYSTEM "functions/filesystem.xml">
 <!ENTITY reference.ftp SYSTEM "functions/ftp.xml">
+<!ENTITY reference.funchand SYSTEM "functions/funchand.xml">
 <!ENTITY reference.gettext SYSTEM "functions/gettext.xml">
 <!ENTITY reference.http SYSTEM "functions/http.xml">
 <!ENTITY reference.hw SYSTEM "functions/hw.xml">
@@ -58,31 +60,30 @@
 <!ENTITY reference.ifx SYSTEM "functions/ifx.xml">
 <!ENTITY reference.image SYSTEM "functions/image.xml">
 <!ENTITY reference.imap SYSTEM "functions/imap.xml">
-<!ENTITY reference.mcal SYSTEM "functions/mcal.xml">
+<!ENTITY reference.info SYSTEM "functions/info.xml">
 <!ENTITY reference.ldap SYSTEM "functions/ldap.xml">
 <!ENTITY reference.mail SYSTEM "functions/mail.xml">
 <!ENTITY reference.math SYSTEM "functions/math.xml">
+<!ENTITY reference.mcal SYSTEM "functions/mcal.xml">
 <!ENTITY reference.mcrypt SYSTEM "functions/mcrypt.xml">
 <!ENTITY reference.mhash SYSTEM "functions/mhash.xml">
 <!ENTITY reference.misc SYSTEM "functions/misc.xml">
 <!ENTITY reference.msql SYSTEM "functions/msql.xml">
 <!ENTITY reference.mssql SYSTEM "functions/mssql.xml">
 <!ENTITY reference.mysql SYSTEM "functions/mysql.xml">
-<!ENTITY reference.nis SYSTEM "functions/nis.xml">
-<!ENTITY reference.sybase SYSTEM "functions/sybase.xml">
 <!ENTITY reference.network SYSTEM "functions/network.xml">
+<!ENTITY reference.nis SYSTEM "functions/nis.xml">
 <!ENTITY reference.oci8 SYSTEM "functions/oci8.xml">
 <!ENTITY reference.oracle SYSTEM "functions/oracle.xml">
 <!ENTITY reference.outcontrol SYSTEM "functions/outcontrol.xml">
 <!ENTITY reference.pcre SYSTEM "functions/pcre.xml">
 <!ENTITY reference.pdf SYSTEM "functions/pdf.xml">
 <!ENTITY reference.pfpro SYSTEM "functions/pfpro.xml">
+<!ENTITY reference.pgsql SYSTEM "functions/pgsql.xml">
 <!ENTITY reference.posix SYSTEM "functions/posix.xml">
+<!ENTITY reference.pspell SYSTEM "functions/pspell.xml">
 <!ENTITY reference.readline SYSTEM "functions/readline.xml">
 <!ENTITY reference.recode SYSTEM "functions/recode.xml">
-<!ENTITY reference.info SYSTEM "functions/info.xml">
-<!ENTITY reference.pgsql SYSTEM "functions/pgsql.xml">
-<!ENTITY reference.pspell SYSTEM "functions/pspell.xml">
 <!ENTITY reference.regex SYSTEM "functions/regex.xml">
 <!ENTITY reference.satellite SYSTEM "functions/satellite.xml">
 <!ENTITY reference.sem SYSTEM "functions/sem.xml">
@@ -91,10 +92,11 @@
 <!ENTITY reference.sockets SYSTEM "functions/sockets.xml">
 <!ENTITY reference.strings SYSTEM "functions/strings.xml">
 <!ENTITY reference.swf SYSTEM "functions/swf.xml">
+<!ENTITY reference.sybase SYSTEM "functions/sybase.xml">
 <!ENTITY reference.uodbc SYSTEM "functions/uodbc.xml">
 <!ENTITY reference.url SYSTEM "functions/url.xml">
 <!ENTITY reference.var SYSTEM "functions/var.xml">
-<!ENTITY reference.vmailmgr SYSTEM "functions/vmailmgr.xml">
+<!ENTITY reference.vmailmgr SYSTEM "functions/vmailmgr.xml">
 <!ENTITY reference.wddx SYSTEM "functions/wddx.xml">
 <!ENTITY reference.xml SYSTEM "functions/xml.xml">
 <!ENTITY reference.yaz SYSTEM "functions/yaz.xml">
Index: phpdoc/de/functions/var.xml
diff -u phpdoc/de/functions/var.xml:1.18 phpdoc/de/functions/var.xml:1.19
--- phpdoc/de/functions/var.xml:1.18 Wed Jul 12 05:00:56 2000
+++ phpdoc/de/functions/var.xml Fri Sep 8 13:02:12 2000
@@ -2,45 +2,6 @@
   <title>Variablen-Functions</title>
   <titleabbrev>Variablen</titleabbrev>
 
- <refentry id="function.call-user-func">
- <refnamediv>
- <refname>call_user_func</refname>
- <refpurpose>Aufruf einer benutzerdefinierten Funktion</refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>mixed
- <function>call_user_func</function>
- </funcdef>
- <paramdef>string
- <parameter>function_name</parameter>
- </paramdef>
- <paramdef>mixed
- <parameter><optional>parameter</optional></parameter>
- </paramdef>
- <paramdef>mixed
- <parameter><optional>...</optional></parameter>
- </paramdef>
- </funcprototype>
- </funcsynopsis>
- <para>
- Ruft die Funktion mit Namen <parameter>function_name</parameter>
- mit den Parametern <parameter>parameters</parameter> auf.
- <informalexample>
- <programlisting role="php">
-function friseur ($type) {
- print "Sie möchten einen $type-Kopf, kein Problem&lt;br>";
-}
-call_user_func ('friseur', "Bubi");
-call_user_func ('friseur', "Pilz");
- </programlisting>
- </informalexample>
- </para>
- </refsect1>
- </refentry>
-
    <refentry id="function.call-user-method">
    <refnamediv>
     <refname>call_user_method</refname>
Index: phpdoc/de/functions/info.xml
diff -u phpdoc/de/functions/info.xml:1.13 phpdoc/de/functions/info.xml:1.14
--- phpdoc/de/functions/info.xml:1.13 Thu Aug 31 02:24:44 2000
+++ phpdoc/de/functions/info.xml Fri Sep 8 13:02:12 2000
@@ -2,174 +2,6 @@
   <title>PHP Optionen und Informationen</title>
   <titleabbrev>PHP Optionen/Informationen</titleabbrev>
 
- <refentry id="function.error-log">
- <refnamediv>
- <refname>error_log</refname>
- <refpurpose>Sendet eine Fehlermeldung</refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>error_log</function></funcdef>
- <paramdef>string <parameter>message</parameter></paramdef>
- <paramdef>int <parameter>message_type</parameter></paramdef>
- <paramdef>string <parameter><optional>destination</optional></parameter></paramdef>
- <paramdef>string <parameter><optional>extra_headers</optional></parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <para>
- Sendet eine Fehlermeldung an das Log-File des Webservers, einen
- <acronym>TCP</acronym> Port oder eine Datei. Der erste Parameter,
- <parameter>message</parameter>, ist die Fehlermeldung, die
- mitgeschrieben werden soll. Der zweite Parameter,
- <parameter>message_type</parameter> gibt an, wo die Meldung
- abgelegt werden soll:
- <table>
- <title><function>Error_log</function> Typem</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>0</entry>
- <entry>
- <parameter>Message</parameter> wird mit Hilfe des internen
- Log-Systems des Betriebssystemes oder einer Datei
- geschrieben, je nachdem, wie <link
- linkend="ini.error-log">error_log</link> eingestellt ist.
- </entry>
- </row>
- <row>
- <entry>1</entry>
- <entry>
- <parameter>Message</parameter> wird via Email an die Adresse
- gesendet, die mit <parameter>destination</parameter>
- amnngegeben wurde. Dies ist der einzige Punkt, bei dem der
- vierte Parameter <parameter>extra_headers</parameter>
- verwendet wird. Die Nachricht verwendet die selbe interne
- Funktion wie <function>mail</function>.
- </entry>
- </row>
- <row>
- <entry>2</entry>
- <entry>
- <parameter>Message</parameter> wird über den PHP-Debugger
- gesendet. Diese Option ist nur verfügbar, wenn <link
- linkend="enable-debugger">der Debugger gestartet
- wurde</link>. Ist das der Fall, so wird mit dem
- <parameter>destination</parameter> Parameter der Hostname
- oder die IP-Adresse gesetzt. Optional auch der Port, unter
- dem der Debugger läuft.
- </entry>
- </row>
- <row>
- <entry>3</entry>
- <entry>
- <parameter>Message</parameter> wird an die Datei angefügt,
- die mit <parameter>destination</parameter> angegeben wurde.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- <para>
- <example>
- <title><function>Error_log</function> Beispiele</title>
- <programlisting role="php">
-// Server sendet eine Nachricht an den Administrator,
-// daß keine Verbindung zur Datenbank möglich ist.
-if (!Ora_Logon($username, $password)) {
- error_log ("Oracle database not available!", 0);
-}
-
-// Server sendet eine Nachricht an den Administrator, daß FOO langsam ausgeht
-if (!($foo = allocate_new_foo()) {
- error_log ("Big trouble, we're all out of FOOs!", 1,
- "operator <email protected>");
-}
-
-// AndereMöglichkeiten, error_log() aufzurufen:
-error_log ("You messed up!", 2, "127.0.0.1:7000");
-error_log ("You messed up!", 2, "loghost");
-error_log ("You messed up!", 3, "/var/tmp/my-errors.log");
- </programlisting>
- </example>
- </para>
- </refsect1>
- </refentry>
-
- <refentry id="function.error-reporting">
- <refnamediv>
- <refname>error_reporting</refname>
- <refpurpose>
- Gibt an, wie PHP-Fehlermeldungen gezeigt werden
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>error_reporting</function></funcdef>
- <paramdef>int <parameter><optional>level</optional></parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <para>
- Setzt die Stufe von PHP's Fehlermeldungen. Diese Stufe ist der
- Fehlermeldung hängt von den folgenden Werten ab. (Hinter den
- folgenden Links verbirgt sich die Bedeutung der internen Werte):
- <table>
- <title><function>Error_reporting</function> Werte</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Werte</entry>
- <entry>interne Namen</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>1</entry>
- <entry>
- <link linkend="internal.e-error">E_ERROR</link>
- </entry>
- </row>
- <row>
- <entry>2</entry>
- <entry>
- <link linkend="internal.e-warning">E_WARNING</link>
- </entry>
- </row>
- <row>
- <entry>4</entry>
- <entry>
- <link linkend="internal.e-parse">E_PARSE</link>
- </entry>
- </row>
- <row>
- <entry>8</entry>
- <entry>
- <link linkend="internal.e-notice">E_NOTICE</link>
- </entry>
- </row>
- <row>
- <entry>16</entry>
- <entry>
- <link linkend="internal.e-core-error">E_CORE_ERROR</link>
- </entry>
- </row>
- <row>
- <entry>32</entry>
- <entry>
- <link linkend="internal.e-core-warning">E_CORE_WARNING</link>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- </refsect1>
- </refentry>
-
   <refentry id="function.extension-loaded">
    <refnamediv>
     <refname>extension_loaded</refname>
Index: phpdoc/de/functions/misc.xml
diff -u phpdoc/de/functions/misc.xml:1.13 phpdoc/de/functions/misc.xml:1.14
--- phpdoc/de/functions/misc.xml:1.13 Tue Aug 22 12:22:53 2000
+++ phpdoc/de/functions/misc.xml Fri Sep 8 13:02:12 2000
@@ -9,157 +9,6 @@
    </para>
   </partintro>
 
- <refentry id="function.create-function">
- <refnamediv>
- <refname>create_function</refname>
- <refpurpose>
- Erzeugen einer anonymen / temporären (Lambda-Stil) Funktion
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung:</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>string <function>create_function</function></funcdef>
- <paramdef>string <parameter>args</parameter></paramdef>
- <paramdef>string <parameter>code</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <para>
- Erzeugt eine anonyme Funktion an Hand der übergebenen Parameter und
- gibt einen eindeutigen Namen für diese zurück. Normalerweise sind
- die <parameter>args</parameter> als mit "'" begrenzte Strings zu
- übergeben. Dies gilt auch für <parameter>code</parameter>. Dadurch
- werden die Variablen vor dem Parsen geschützt. Falls sie """
- verwenden, müssen sie die Variablen-Namen "escapen", wie z.B.
- <literal>\$avar</literal>.
- </para>
- <para>
- Dieser Befehl kann z.B. verwendet werden, um eine Funktion an Hand
- von Informationen zu erzeugen, die erst zur Laufzeit vorliegen.
- <example>
- <title>
- Erzeugen einer anonymen / temporären Funktion per
- <function>create_function</function>:
- </title>
- <programlisting role="php">
-$newfunc = create_function('$a,$b','return "ln($a) + ln($b) = ".log($a * $b);');
-echo "Neue Temp-Funktion: $newfunc\n";
-echo $newfunc(2,M_E)."\n";
-// Ausgabe:
-// Neue Temp-Funktion: lambda_1
-// ln(2) + ln(2.718281828459) = 1.6931471805599
- </programlisting>
- </example>
- Sie können auch eine allgemeine Handhabungs-Funktion erstellen, die
- einen mehr oder weniger große Anzahl an Operationen mit einer Liste
- von Parametern durchführt.
- <example>
- <title>
- Beispiel zum o.a. Verwendungszweck:
- </title>
- <programlisting role="php">
-function process($var1, $var2, $farr) {
- for ($f=0; $f &lt; count($farr); $f++)
- echo $farr[$f]($var1,$var2)."\n";
-}
-
-// Erzeugung eines Bündels an mathematischen Funktionen
-$f1 = 'if ($a &gt;=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
-$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
-$f3 = 'if ($a &gt; 0 &amp;&amp; $b != 0) {return "ln(a)/b = ".log($a)/$b;} else {return false;}';
-$farr = array(
- create_function('$x,$y', 'return "als trig: ".(sin($x) + $x*cos($y));'),
- create_function('$x,$y', 'return "als Hypotenuse: ".sqrt($x*$x + $y*$y);'),
- create_function('$a,$b', $f1),
- create_function('$a,$b', $f2),
- create_function('$a,$b', $f3)
- );
-
-echo "\nGebrauch des ersten Arrays der anonymen Funktionen\n";
-echo "Parameter: 2.3445, M_PI\n";
-process(2.3445, M_PI, $farr);
-
-// Erzeugung eines Bündels an String-Behandlungs-Routinen
-$garr = array(
- create_function('$b, $a','if (strncmp ($a, $b, 3) == 0) return "** \"$a\" '.
- 'und \"$b\"\n** Sieht für mich gleich aus! (ansehen der ersten 3 Zeichen)";'),
- create_function('$a, $b','; return "CRCs: ".crc32($a)." , ".crc32(b);'),
- create_function('$a, $b','; return "ähnlich(a, b) = ".similar_text($a, $b, &$p)."($p%)";')
- );
-echo "\nGebrauch des zweiten Arrays der anonymen Funktionen\n";
-process("Twas brilling and the slithy toves", "Twas the night", $garr);
- </programlisting>
- </example>
- wenn sie nun den o.a Code ausführen lassen, wird folgendes
- ausgegeben :
- <informalexample>
- <programlisting>
-Gebrauch des ersten Arrays der anonymen Funktionen
-Parameter: 2.3445, M_PI
-als trig: -1.6291725057799
-als Hypotenuse: 3.9199852871011
-b*a^2 = 4.8103313314525
-min(b^2+a, a^2,b) = 8.6382729035898
-ln(a/b) = 0.27122299212594
-
-Gebrauch des zweiten Arrays der anonymen Funktionen
-** "Twas the night" und "Twas brilling and the slithy toves"
-** Sieht für mich gleich aus! (ansehen der ersten 3 Zeichen)
-CRCs: -725381282 , 1908338681
-ähnlich(a,b) = 11(45.833333333333%)
- </programlisting>
- </informalexample>
- Möglicherweise liegt der häufigste Anwendungsfall für Funktionen im
- Lambda-Stil (anonym) bei den Callback-Funktionen, also z.B. beim
- Gebrauch von <function>array_walk</function> oder
- <function>usort</function>.
- <example>
- <title>
- Gebrauch der anonymen Funktionen als Callback-Funktion:
- </title>
- <programlisting role="php">
-$av = array("der ","ein ","dieser ","jener ");
-array_walk($av, create_function('&$v,$k','$v = $v."Zug";'));
-print_r($av); // mit PHP3 benutzen sie bitte var_dump()
-// Ausgaben:
-// Array
-// (
-// [0] =&gt; der Zug
-// [1] =&gt; ein Zug
-// [2] =&gt; dieser Zug
-// [3] =&gt; jener Zug
-// )
-
-// Ein Array aus Strings nach Länge geordnet
-$sv = array("kurz","länger","noch länger","dieser ist am längsten");
-print_r($sv);
-// Ausgaben:
-// Array
-// (
-// [0] =&gt; kurz
-// [1] =&gt; länger
-// [2] =&gt; noch länger
-// [3] =&gt; dieser ist am längsten
-// )
-
-// Sortierung von lang nach kurz
-usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
-print_r($sv);
-// Ausgabe:
-// Array
-// (
-// [0] =&gt; dieser ist am längsten
-// [1] =&gt; noch länger
-// [2] =&gt; länger
-// [3] =&gt; kurz
-// )
- </programlisting>
- </example>
- </para>
- </refsect1>
- </refentry>
-
   <refentry id="function.connection-aborted">
    <refnamediv>
     <refname>connection_aborted</refname>
@@ -478,198 +327,6 @@
    </refsect1>
   </refentry>
 
- <refentry id="function.func-get-arg">
- <refnamediv>
- <refname>func_get_arg</refname>
- <refpurpose>
- Gibt einen Eintrag aus einer Liste von Argumenten zurück
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung:</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>func_get_arg</function></funcdef>
- <paramdef>int <parameter>arg_num</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <simpara>
- Gibt das Argument des an der <parameter>arg_num</parameter>
- stehenden Stelle in eine benutzer-definierte Liste zurück. Der
- Zähler hierfür beginnt bei 0. Der Aufruf von
- <function>func_get_arg</function> ausserhalb einer
- Funktions-Definition erzeugt eine Warnung.
- </simpara>
- <simpara>
- Ist <parameter>arg_num</parameter> grösser als die Anzahl der
- vorhandenen Argumente, wird eine Warnung aus- und false zurück
- gegeben.
- </simpara>
- <para>
- <informalexample>
- <programlisting role="php">
-&lt;?php
-function foo() {
- $numargs = func_num_args();
- echo "Anzahl der Argumente: $numargs&lt;br&gt;\n";
- if ($numargs &gt;= 2) {
- echo "Das 2. Argument ist: " . func_get_arg (1) . "&lt;br&gt;\n";
- }
-}
-
-foo (1, 2, 3);
-?&gt;
- </programlisting>
- </informalexample>
- </para>
- <simpara>
- <function>func_get_arg</function> kann in Verbindung mit
- <function>func_num_args</function> und
- <function>func_get_args</function> gebraucht werden, um
- benutzer-definierte Funktionen mit variabler Argument-Liste zu
- erstellen.
- </simpara>
- <note>
- <simpara>
- <emphasis>Diese Funktion steht ab PHP 4 zur Verfügung.</emphasis>
- </simpara>
- </note>
- </refsect1>
- </refentry>
-
- <refentry id="function.func-get-args">
- <refnamediv>
- <refname>func_get_args</refname>
- <refpurpose>
- Gibt ein Array zurück, das die Liste der einer Funktion übergebenen
- Argumente enthält
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung:</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>func_get_args</function></funcdef>
- <paramdef>void <parameter></parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <simpara>
- In einem Array wird jedes Element zurück gegeben, das einer
- benutzer-definierten Funktion übergeben wurde. Sollten sie
- dies ausserhalb einer eigenen (benutzer-definierten) Funktion
- anwenden, wird eine Warnung ausgegeben.
- </simpara>
- <para>
- <informalexample>
- <programlisting role="php">
-&lt;?php
-function foo() {
- $numargs = func_num_args();
- echo "Anzahl der Argumente: $numargs&lt;br&gt;\n";
- if ($numargs &gt;= 2) {
- echo "Das 2. Argument ist: " . func_get_arg (1) . "&lt;br&gt;\n";
- }
- $arg_list = func_get_args();
- for ($i = 0; $i &lt; $numargs; $i++) {
- echo "Argument $i ist: " . $arg_list[$i] . "&lt;br&gt;\n";
- }
-}
-
-foo (1, 2, 3);
-?&gt;
- </programlisting>
- </informalexample>
- </para>
- <simpara>
- <function>Func_get_args</function> kann in Verbindung mit
- <function>func_num_args</function> und
- <function>func_get_arg</function> verwendet werden, um einer
- benutzer-definierten Funktion eine Argument-Liste mit variabler
- Länge zu übergeben.
- </simpara>
- <note>
- <simpara>
- Diese Funktion steht ab PHP 4 zur Verfügung.
- </simpara>
- </note>
- </refsect1>
- </refentry>
-
- <refentry id="function.func-num-args">
- <refnamediv>
- <refname>func_num_args</refname>
- <refpurpose>
- Gibt die Anzahl der einer Funktion übergebenen Argumente zurück
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung:</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>func_num_args</function></funcdef>
- <paramdef>void <parameter></parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <simpara>
- Die einer benutzer-definierten Funktion übergebene Anzahl an
- Argumenten wird zurück gegeben. Falls
- <function>func_num_args</function> ausserhalb einer
- benutzer-definierten Funktion Verwendung findet, wird eine
- Warnung ausgegeben.
- </simpara>
- <para>
- <informalexample>
- <programlisting role="php">
-&lt;?php
-function foo() {
- $numargs = func_num_args();
- echo "Anzahl der Argumente: $numargs\n";
-}
-
-foo (1, 2, 3); // Ausgabe: 'Anzahl der Argumente: 3'
-?&gt;
- </programlisting>
- </informalexample>
- </para>
- <simpara>
- <function>func_num_args</function> kann in Verbindung mit
- <function>func_get_arg</function> und
- <function>func_get_args</function> benutzt werden, um einer
- benutzer-definerten Funktion eine variable Anzahl von Argumenten
- zu übergeben.
- </simpara>
- <note>
- <simpara>
- Diese Funktion wurde in PHP 4 hinzu gefügt.
- </simpara>
- </note>
- </refsect1>
- </refentry>
-
- <refentry id="function.function-exists">
- <refnamediv>
- <refname>function_exists</refname>
- <refpurpose>
- Falls die angegebene Funktion definiert ist, wird true zurück
- gegeben
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung:</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int <function>function_exists</function></funcdef>
- <paramdef>string <parameter>function_name</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <simpara>
- Prüft die Liste der definierten Funktionen auf das Vorhanden sein
- der Funktion mit dem Namen <parameter>function_name</parameter> .
- Sofern vorhanden wird true, sonst false zurück gegeben.
- </simpara>
- </refsect1>
- </refentry>
-
   <refentry id="function.get-browser">
    <refnamediv>
     <refname>get_browser</refname>
@@ -1038,38 +695,6 @@
      wird er ins Double-Format umgesetzt, was oft zu unerwünschten
      Resultaten führt.
     </para>
- </refsect1>
- </refentry>
-
- <refentry id="function.register-shutdown-function">
- <refnamediv>
- <refname>register_shutdown_function</refname>
- <refpurpose>
- Registriert eine Funktion zur Ausführung beim Skript-Abschluss
- </refpurpose>
- </refnamediv>
- <refsect1>
- <title>Beschreibung:</title>
- <funcsynopsis>
- <funcprototype>
- <funcdef>int
- <function>register_shutdown_function</function>
- </funcdef>
- <paramdef>string <parameter>func</parameter></paramdef>
- </funcprototype>
- </funcsynopsis>
- <simpara>
- Die mit <parameter>func</parameter> benannte Funktion wird im
- Skript zwecks Ausführung an dessen Ende eingetragen.
- </simpara>
- <para>
- Bekannte Problemfälle:
- </para>
- <simpara>
- Da innerhalb dieser Funktion keinerlei Ausgabe im Browser erzeugt
- werden, können sie die registrierte Funktion nicht mit print oder
- echo usw. debuggen.
- </simpara>
    </refsect1>
   </refentry>
 

Index: phpdoc/de/functions/funchand.xml
+++ phpdoc/de/functions/funchand.xml
 <reference id="ref.funchand">
  <title>Function Handling functions</title>
  <titleabbrev>Functions</titleabbrev>

  <partintro>
   <para>
    These functions all handle various operations involved in working
    with functions.
   </para>
  </partintro>
  
  <refentry id="function.call-user-func">
   <refnamediv>
    <refname>call_user_func</refname>
    <refpurpose>Aufruf einer benutzerdefinierten Funktion</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>mixed
       <function>call_user_func</function>
      </funcdef>
      <paramdef>string
       <parameter>function_name</parameter>
      </paramdef>
      <paramdef>mixed
       <parameter><optional>parameter</optional></parameter>
      </paramdef>
      <paramdef>mixed
       <parameter><optional>...</optional></parameter>
      </paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Ruft die Funktion mit Namen <parameter>function_name</parameter>
     mit den Parametern <parameter>parameters</parameter> auf.
     <informalexample>
      <programlisting role="php">
function friseur ($type) {
    print "Sie möchten einen $type-Kopf, kein Problem&lt;br>";
}
call_user_func ('friseur', "Bubi");
call_user_func ('friseur', "Pilz");
      </programlisting>
     </informalexample>
    </para>
   </refsect1>
  </refentry>
  
  <refentry id="function.create-function">
   <refnamediv>
    <refname>create_function</refname>
    <refpurpose>
     Erzeugen einer anonymen / temporären (Lambda-Stil) Funktion
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung:</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>string <function>create_function</function></funcdef>
      <paramdef>string <parameter>args</parameter></paramdef>
      <paramdef>string <parameter>code</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Erzeugt eine anonyme Funktion an Hand der übergebenen Parameter und
     gibt einen eindeutigen Namen für diese zurück. Normalerweise sind
     die <parameter>args</parameter> als mit "'" begrenzte Strings zu
     übergeben. Dies gilt auch für <parameter>code</parameter>. Dadurch
     werden die Variablen vor dem Parsen geschützt. Falls sie """
     verwenden, müssen sie die Variablen-Namen "escapen", wie z.B.
           <literal>\$avar</literal>.
          </para>
          <para>
     Dieser Befehl kann z.B. verwendet werden, um eine Funktion an Hand
     von Informationen zu erzeugen, die erst zur Laufzeit vorliegen.
     <example>
      <title>
       Erzeugen einer anonymen / temporären Funktion per
       <function>create_function</function>:
      </title>
      <programlisting role="php">
$newfunc = create_function('$a,$b','return "ln($a) + ln($b) = ".log($a * $b);');
echo "Neue Temp-Funktion: $newfunc\n";
echo $newfunc(2,M_E)."\n";
// Ausgabe:
// Neue Temp-Funktion: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
      </programlisting>
     </example>
     Sie können auch eine allgemeine Handhabungs-Funktion erstellen, die
     einen mehr oder weniger große Anzahl an Operationen mit einer Liste
     von Parametern durchführt.
     <example>
      <title>
       Beispiel zum o.a. Verwendungszweck:
            </title>
      <programlisting role="php">
function process($var1, $var2, $farr) {
    for ($f=0; $f &lt; count($farr); $f++)
        echo $farr[$f]($var1,$var2)."\n";
}

// Erzeugung eines Bündels an mathematischen Funktionen
$f1 = 'if ($a &gt;=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a &gt; 0 &amp;&amp; $b != 0) {return "ln(a)/b = ".log($a)/$b;} else {return false;}';
$farr = array(
    create_function('$x,$y', 'return "als trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "als Hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nGebrauch des ersten Arrays der anonymen Funktionen\n";
echo "Parameter: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// Erzeugung eines Bündels an String-Behandlungs-Routinen
$garr = array(
    create_function('$b, $a','if (strncmp ($a, $b, 3) == 0) return "** \"$a\" '.
        'und \"$b\"\n** Sieht für mich gleich aus! (ansehen der ersten 3 Zeichen)";'),
    create_function('$a, $b','; return "CRCs: ".crc32($a)." , ".crc32(b);'),
    create_function('$a, $b','; return "ähnlich(a, b) = ".similar_text($a, $b, &$p)."($p%)";')
    );
echo "\nGebrauch des zweiten Arrays der anonymen Funktionen\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
            </programlisting>
     </example>
     wenn sie nun den o.a Code ausführen lassen, wird folgendes
     ausgegeben :
     <informalexample>
      <programlisting>
Gebrauch des ersten Arrays der anonymen Funktionen
Parameter: 2.3445, M_PI
als trig: -1.6291725057799
als Hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Gebrauch des zweiten Arrays der anonymen Funktionen
** "Twas the night" und "Twas brilling and the slithy toves"
** Sieht für mich gleich aus! (ansehen der ersten 3 Zeichen)
CRCs: -725381282 , 1908338681
ähnlich(a,b) = 11(45.833333333333%)
            </programlisting>
           </informalexample>
     Möglicherweise liegt der häufigste Anwendungsfall für Funktionen im
     Lambda-Stil (anonym) bei den Callback-Funktionen, also z.B. beim
     Gebrauch von <function>array_walk</function> oder
     <function>usort</function>.
     <example>
      <title>
       Gebrauch der anonymen Funktionen als Callback-Funktion:
      </title>
            <programlisting role="php">
$av = array("der ","ein ","dieser ","jener ");
array_walk($av, create_function('&$v,$k','$v = $v."Zug";'));
print_r($av); // mit PHP3 benutzen sie bitte var_dump()
// Ausgaben:
// Array
// (
// [0] =&gt; der Zug
// [1] =&gt; ein Zug
// [2] =&gt; dieser Zug
// [3] =&gt; jener Zug
// )

// Ein Array aus Strings nach Länge geordnet
$sv = array("kurz","länger","noch länger","dieser ist am längsten");
print_r($sv);
// Ausgaben:
// Array
// (
// [0] =&gt; kurz
// [1] =&gt; länger
// [2] =&gt; noch länger
// [3] =&gt; dieser ist am längsten
// )

// Sortierung von lang nach kurz
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
// Ausgabe:
// Array
// (
// [0] =&gt; dieser ist am längsten
// [1] =&gt; noch länger
// [2] =&gt; länger
// [3] =&gt; kurz
// )
            </programlisting>
           </example>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.func-get-arg">
   <refnamediv>
    <refname>func_get_arg</refname>
    <refpurpose>
     Gibt einen Eintrag aus einer Liste von Argumenten zurück
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung:</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>func_get_arg</function></funcdef>
      <paramdef>int <parameter>arg_num</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <simpara>
     Gibt das Argument des an der <parameter>arg_num</parameter>
     stehenden Stelle in eine benutzer-definierte Liste zurück. Der
     Zähler hierfür beginnt bei 0. Der Aufruf von
     <function>func_get_arg</function> ausserhalb einer
     Funktions-Definition erzeugt eine Warnung.
    </simpara>
    <simpara>
     Ist <parameter>arg_num</parameter> grösser als die Anzahl der
     vorhandenen Argumente, wird eine Warnung aus- und false zurück
     gegeben.
    </simpara>
    <para>
     <informalexample>
      <programlisting role="php">
&lt;?php
function foo() {
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs&lt;br&gt;\n";
    if ($numargs &gt;= 2) {
        echo "Das 2. Argument ist: " . func_get_arg (1) . "&lt;br&gt;\n";
    }
}

foo (1, 2, 3);
?&gt;
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     <function>func_get_arg</function> kann in Verbindung mit
     <function>func_num_args</function> und
     <function>func_get_args</function> gebraucht werden, um
     benutzer-definierte Funktionen mit variabler Argument-Liste zu
     erstellen.
    </simpara>
    <note>
     <simpara>
      <emphasis>Diese Funktion steht ab PHP 4 zur Verfügung.</emphasis>
     </simpara>
    </note>
   </refsect1>
  </refentry>

  <refentry id="function.func-get-args">
   <refnamediv>
    <refname>func_get_args</refname>
    <refpurpose>
     Gibt ein Array zurück, das die Liste der einer Funktion übergebenen
     Argumente enthält
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung:</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>func_get_args</function></funcdef>
      <paramdef>void <parameter></parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <simpara>
     In einem Array wird jedes Element zurück gegeben, das einer
     benutzer-definierten Funktion übergeben wurde. Sollten sie
     dies ausserhalb einer eigenen (benutzer-definierten) Funktion
     anwenden, wird eine Warnung ausgegeben.
    </simpara>
    <para>
     <informalexample>
      <programlisting role="php">
&lt;?php
function foo() {
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs&lt;br&gt;\n";
    if ($numargs &gt;= 2) {
        echo "Das 2. Argument ist: " . func_get_arg (1) . "&lt;br&gt;\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i &lt; $numargs; $i++) {
        echo "Argument $i ist: " . $arg_list[$i] . "&lt;br&gt;\n";
    }
}

foo (1, 2, 3);
?&gt;
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     <function>Func_get_args</function> kann in Verbindung mit
     <function>func_num_args</function> und
     <function>func_get_arg</function> verwendet werden, um einer
     benutzer-definierten Funktion eine Argument-Liste mit variabler
     Länge zu übergeben.
    </simpara>
    <note>
     <simpara>
      Diese Funktion steht ab PHP 4 zur Verfügung.
     </simpara>
    </note>
   </refsect1>
  </refentry>

  <refentry id="function.func-num-args">
   <refnamediv>
    <refname>func_num_args</refname>
    <refpurpose>
     Gibt die Anzahl der einer Funktion übergebenen Argumente zurück
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung:</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>func_num_args</function></funcdef>
      <paramdef>void <parameter></parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <simpara>
     Die einer benutzer-definierten Funktion übergebene Anzahl an
     Argumenten wird zurück gegeben. Falls
     <function>func_num_args</function> ausserhalb einer
     benutzer-definierten Funktion Verwendung findet, wird eine
     Warnung ausgegeben.
    </simpara>
    <para>
     <informalexample>
      <programlisting role="php">
&lt;?php
function foo() {
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs\n";
}

foo (1, 2, 3); // Ausgabe: 'Anzahl der Argumente: 3'
?&gt;
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     <function>func_num_args</function> kann in Verbindung mit
     <function>func_get_arg</function> und
     <function>func_get_args</function> benutzt werden, um einer
     benutzer-definerten Funktion eine variable Anzahl von Argumenten
     zu übergeben.
    </simpara>
    <note>
     <simpara>
      Diese Funktion wurde in PHP 4 hinzu gefügt.
     </simpara>
    </note>
   </refsect1>
  </refentry>

  <refentry id="function.function-exists">
   <refnamediv>
    <refname>function_exists</refname>
    <refpurpose>
     Falls die angegebene Funktion definiert ist, wird true zurück
     gegeben
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung:</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>function_exists</function></funcdef>
      <paramdef>string <parameter>function_name</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <simpara>
     Prüft die Liste der definierten Funktionen auf das Vorhanden sein
     der Funktion mit dem Namen <parameter>function_name</parameter> .
     Sofern vorhanden wird true, sonst false zurück gegeben.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.register-shutdown-function">
   <refnamediv>
    <refname>register_shutdown_function</refname>
    <refpurpose>
     Registriert eine Funktion zur Ausführung beim Skript-Abschluss
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung:</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int
       <function>register_shutdown_function</function>
      </funcdef>
      <paramdef>string <parameter>func</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <simpara>
     Die mit <parameter>func</parameter> benannte Funktion wird im
     Skript zwecks Ausführung an dessen Ende eingetragen.
    </simpara>
    <para>
     Bekannte Problemfälle:
    </para>
    <simpara>
     Da innerhalb dieser Funktion keinerlei Ausgabe im Browser erzeugt
     werden, können sie die registrierte Funktion nicht mit print oder
     echo usw. debuggen.
    </simpara>
   </refsect1>
  </refentry>
  
 </reference>

<!-- 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/de/functions/errorfunc.xml
+++ phpdoc/de/functions/errorfunc.xml
 <reference id="ref.errorfunc">
  <title>Error Handling and Logging Functions</title>
  <titleabbrev>Errors and Logging</titleabbrev>

  <partintro>
   <para>
    These are functions dealing with error handling and logging. They
    allow you to define your own error handling rules, as well as modify
    the way the errors can be logged. This allows you to change and
    enhance error reporting to suit your needs.
   </para>
   <para>
    With the logging functions, you can send messages directly to other
    machines, to an email (or email to pager gateway!), to system logs,
    etc., so you can selectively log and monitor the most important parts
    of your applications and websites.
   </para>
   <para>
    The error reporting functions allow you to customize what level and
    kind of error feedback is given, ranging from simple notices to customized
    functions returned during errors.
   </para>
  </partintro>

  <refentry id="function.error-log">
   <refnamediv>
    <refname>error_log</refname>
    <refpurpose>Sendet eine Fehlermeldung</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>error_log</function></funcdef>
      <paramdef>string <parameter>message</parameter></paramdef>
      <paramdef>int <parameter>message_type</parameter></paramdef>
      <paramdef>string <parameter><optional>destination</optional></parameter></paramdef>
      <paramdef>string <parameter><optional>extra_headers</optional></parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Sendet eine Fehlermeldung an das Log-File des Webservers, einen
     <acronym>TCP</acronym> Port oder eine Datei. Der erste Parameter,
     <parameter>message</parameter>, ist die Fehlermeldung, die
     mitgeschrieben werden soll. Der zweite Parameter,
     <parameter>message_type</parameter> gibt an, wo die Meldung
     abgelegt werden soll:
     <table>
      <title><function>Error_log</function> Typem</title>
      <tgroup cols="2">
       <tbody>
        <row>
         <entry>0</entry>
         <entry>
          <parameter>Message</parameter> wird mit Hilfe des internen
          Log-Systems des Betriebssystemes oder einer Datei
          geschrieben, je nachdem, wie <link
          linkend="ini.error-log">error_log</link> eingestellt ist.
         </entry>
        </row>
        <row>
         <entry>1</entry>
         <entry>
          <parameter>Message</parameter> wird via Email an die Adresse
          gesendet, die mit <parameter>destination</parameter>
          amnngegeben wurde. Dies ist der einzige Punkt, bei dem der
          vierte Parameter <parameter>extra_headers</parameter>
          verwendet wird. Die Nachricht verwendet die selbe interne
          Funktion wie <function>mail</function>.
         </entry>
        </row>
        <row>
         <entry>2</entry>
         <entry>
          <parameter>Message</parameter> wird über den PHP-Debugger
          gesendet. Diese Option ist nur verfügbar, wenn <link
          linkend="enable-debugger">der Debugger gestartet
          wurde</link>. Ist das der Fall, so wird mit dem
          <parameter>destination</parameter> Parameter der Hostname
          oder die IP-Adresse gesetzt. Optional auch der Port, unter
          dem der Debugger läuft.
         </entry>
        </row>
        <row>
         <entry>3</entry>
         <entry>
          <parameter>Message</parameter> wird an die Datei angefügt,
          die mit <parameter>destination</parameter> angegeben wurde.
         </entry>
        </row>
       </tbody>
      </tgroup>
     </table>
    </para>
    <para>
     <example>
      <title><function>Error_log</function> Beispiele</title>
      <programlisting role="php">
// Server sendet eine Nachricht an den Administrator,
// daß keine Verbindung zur Datenbank möglich ist.
if (!Ora_Logon($username, $password)) {
    error_log ("Oracle database not available!", 0);
}

// Server sendet eine Nachricht an den Administrator, daß FOO langsam ausgeht
if (!($foo = allocate_new_foo()) {
    error_log ("Big trouble, we're all out of FOOs!", 1,
               "operator <email protected>");
}

// AndereMöglichkeiten, error_log() aufzurufen:
error_log ("You messed up!", 2, "127.0.0.1:7000");
error_log ("You messed up!", 2, "loghost");
error_log ("You messed up!", 3, "/var/tmp/my-errors.log");
      </programlisting>
     </example>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.error-reporting">
   <refnamediv>
    <refname>error_reporting</refname>
    <refpurpose>
     Gibt an, wie PHP-Fehlermeldungen gezeigt werden
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>error_reporting</function></funcdef>
      <paramdef>int <parameter><optional>level</optional></parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Setzt die Stufe von PHP's Fehlermeldungen. Diese Stufe ist der
     Fehlermeldung hängt von den folgenden Werten ab. (Hinter den
     folgenden Links verbirgt sich die Bedeutung der internen Werte):
     <table>
      <title><function>Error_reporting</function> Werte</title>
      <tgroup cols="2">
       <thead>
        <row>
         <entry>Werte</entry>
         <entry>interne Namen</entry>
        </row>
       </thead>
       <tbody>
        <row>
         <entry>1</entry>
         <entry>
          <link linkend="internal.e-error">E_ERROR</link>
         </entry>
        </row>
        <row>
         <entry>2</entry>
         <entry>
          <link linkend="internal.e-warning">E_WARNING</link>
         </entry>
        </row>
        <row>
         <entry>4</entry>
         <entry>
          <link linkend="internal.e-parse">E_PARSE</link>
         </entry>
        </row>
        <row>
         <entry>8</entry>
         <entry>
          <link linkend="internal.e-notice">E_NOTICE</link>
         </entry>
        </row>
        <row>
         <entry>16</entry>
         <entry>
          <link linkend="internal.e-core-error">E_CORE_ERROR</link>
         </entry>
        </row>
        <row>
         <entry>32</entry>
         <entry>
          <link linkend="internal.e-core-warning">E_CORE_WARNING</link>
         </entry>
        </row>
       </tbody>
      </tgroup>
     </table>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.restore-error-handler">
   <refnamediv>
    <refname>restore_error_handler</refname>
    <refpurpose>
     Restores the previous error handler function
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>void <function>restore_error_handler</function></funcdef>
      <paramdef>void</paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Used after changing the error handler function using
     <function>set_error_handler</function>, to revert to the previous error
     handler (which could be the built-in or a user defined function)
    </para>
    <para>
     See also <function>error_reporting</function>,
     <function>set_error_handler</function>,
     <function>trigger_error</function>, <function>user_error</function>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.set-error-handler">
   <refnamediv>
    <refname>set_error_handler</refname>
    <refpurpose>
     Sets a user-defined error handler function.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>string <function>set_error_handler</function></funcdef>
      <paramdef>string <parameter>error_handler</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Sets a user function (<parameter>error_handler</parameter>) to handle
     errors in a script. Returns the previously defined error handler (if
     any), or false on error. This function can be used for defining your own
     way of handling errors during runtime, for example in applications in
     which you need to do cleanup of data/files when a critical error happens,
     or when you need to trigger an error under certain conditions (using
     <function>trigger_error</function>)
    </para>
    <para>
     The user function needs to accept 2 parameters: the error code, and a
     string describing the error. The example below shows the handling of
     internal execptions by triggering errors and handling them with a user
     defined function:
     <example>
      <title>
       Error handling with <function>set_error_handler</function> and
       <function>trigger_error</function>
      </title>
      <programlisting role="php">
&lt;?php

// redefine the user error constants - PHP4 only
define(FATAL,E_USER_ERROR);
define(ERROR,E_USER_WARNING);
define(WARNING,E_USER_NOTICE);

// set the error reporting level for this script
error_reporting(FATAL + ERROR + WARNING);

// error handler function
function myErrorHandler ($errno, $errstr) {
    switch ($errno) {
    case FATAL:
    echo &quot;&lt;b&gt;FATAL&lt;/b&gt; [$errno] $errstr&lt;br&gt;\n&quot;;
    echo &quot; Fatal error in line &quot;.__LINE__.&quot; of file &quot;.__FILE__;
    echo &quot;, PHP &quot;.PHP_VERSION.&quot; (&quot;.PHP_OS.&quot;)&lt;br&gt;\n&quot;;
    echo &quot;Aborting...&lt;br&gt;\n&quot;;
    exit -1;
    break;
    case ERROR:
    echo &quot;&lt;b&gt;ERROR&lt;/b&gt; [$errno] $errstr&lt;br&gt;\n&quot;;
    break;
    case WARNING:
    echo &quot;&lt;b&gt;WARNING&lt;/b&gt; [$errno] $errstr&lt;br&gt;\n&quot;;
    break;
    default:
    echo &quot;Unkown error type: [$errno] $errstr&lt;br&gt;\n&quot;;
    break;
    }
}

// function to test the error handling
function scale_by_log ($vect, $scale) {
    if ( !is_numeric($scale) || $scale &lt;= 0 )
    trigger_error(&quot;log(x) for x &lt;= 0 is undefined, you used: scale = $scale&quot;,
      FATAL);
    if (!is_array($vect)) {
    trigger_error(&quot;Incorrect input vector, array of values expected&quot;, ERROR);
    return null;
    }
    for ($i=0; $i&lt;count($vect); $i++) {
    if (!is_numeric($vect[$i]))
    trigger_error(&quot;Value at position $i is not a number, using 0 (zero)&quot;,
      WARNING);
    $temp[$i] = log($scale) * $vect[$i];
    }
    return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler(&quot;myErrorHandler&quot;);

// trigger some errors, first define a mixed array with a non-numeric item
echo &quot;vector a\n&quot;;
$a = array(2,3,&quot;foo&quot;,5.5,43.3,21.11);
print_r($a);

// now generate second array, generating a warning
echo &quot;----\nvector b - a warning (b = log(PI) * a)\n&quot;;
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo &quot;----\nvector c - an error\n&quot;;
$c = scale_by_log(&quot;not array&quot;,2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo &quot;----\nvector d - fatal error\n&quot;;
$d = scale_by_log($a, -2.5);

?&gt;
      </programlisting>
     </example>
     And when you run this sample script, the output will be
     <informalexample>
      <programlisting>
vector a
Array
(
    [0] =&gt; 2
    [1] =&gt; 3
    [2] =&gt; foo
    [3] =&gt; 5.5
    [4] =&gt; 43.3
    [5] =&gt; 21.11
)

----
vector b - a warning (b = log(PI) * a)
&lt;b&gt;WARNING&lt;/b&gt; [1024] Value at position 2 is not a number, using 0 (zero)&lt;br&gt;
Array
(
    [0] =&gt; 2.2894597716988
    [1] =&gt; 3.4341896575482
    [2] =&gt; 0
    [3] =&gt; 6.2960143721717
    [4] =&gt; 49.566804057279
    [5] =&gt; 24.165247890281
)
----
vector c - an error
&lt;b&gt;ERROR&lt;/b&gt; [512] Incorrect input vector, array of values expected&lt;br&gt;
NULL
----
vector d - fatal error
&lt;b&gt;FATAL&lt;/b&gt; [256] log(x) for x &lt;= 0 is undefined, you used: scale = -2.5&lt;br&gt;
  Fatal error in line 16 of file trigger_error.php, PHP 4.0.1pl2 (Linux)&lt;br&gt;
Aborting...&lt;br&gt;
      </programlisting>
     </informalexample>
    </para>
    <para>
     See also <function>error_reporting</function>,
     <function>restore_error_handler</function>,
     <function>trigger_error</function>, <function>user_error</function>
    </para>
   </refsect1>
  </refentry>

<refentry id="function.trigger-error"> <refnamediv> <refname>trigger_error</refname> <refpurpose> Generates a user-level error/warning/notice message </refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>void <function>trigger_error</function></funcdef> <paramdef>string <parameter>error_msg</parameter></paramdef> <paramdef>int <parameter><optional>error_type</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> Used to trigger a user error condition, it can be used by in conjunction with the built-in error handler, or with a user defined function that has been set as the new error handler (<function>set_error_handler</function>). This function is useful when you need to generate a particular response to an exception at runtime. For example: <informalexample> <programlisting> if (assert($divisor == 0)) trigger_error("Cannot divide by zero", E_USER_ERROR); </programlisting> </informalexample> <note> <para> See <function>set_error_handler</function> for a more extensive example. </para> </note> </para> <para> See also <function>error_reporting</function>, <function>set_error_handler</function>, <function>restore_error_handler</function>, <function>user_error</function> </para> </refsect1> </refentry>

<refentry id="function.user-error"> <refnamediv> <refname>user_error</refname> <refpurpose> Generates a user-level error/warning/notice message </refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>void <function>user_error</function></funcdef> <paramdef>string <parameter>error_msg</parameter></paramdef> <paramdef>int <parameter><optional>error_type</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> This is an alias for the function <function>trigger_error</function>. </para> <para> See also <function>error_reporting</function>, <function>set_error_handler</function>, <function>restore_error_handler</function>, <function>trigger_error</function> </para> </refsect1> </refentry>

</reference>

<!-- 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: -->