bjori Sun Jan 14 19:43:52 2007 UTC
Modified files: /phpdoc/en/reference/errorfunc/functions set-error-handler.xml Log: Fix example and add some whitespace to make it readable http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/errorfunc/functions/set-error-handler.xml?r1=1.34&r2=1.35&diff_format=u Index: phpdoc/en/reference/errorfunc/functions/set-error-handler.xml diff -u phpdoc/en/reference/errorfunc/functions/set-error-handler.xml:1.34 phpdoc/en/reference/errorfunc/functions/set-error-handler.xml:1.35 --- phpdoc/en/reference/errorfunc/functions/set-error-handler.xml:1.34 Mon Jan 8 10:31:05 2007 +++ phpdoc/en/reference/errorfunc/functions/set-error-handler.xml Sun Jan 14 19:43:52 2007 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.34 $ --> +<!-- $Revision: 1.35 $ --> <!-- splitted from ./en/functions/errorfunc.xml, last change in rev 1.1 --> <refentry id="function.set-error-handler"> <refnamediv> @@ -223,75 +223,84 @@ <programlisting role="php"> <![CDATA[ <?php -// set the error reporting level for this script -error_reporting(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE); - // error handler function function myErrorHandler($errno, $errstr, $errfile, $errline) { - switch ($errno) { - case E_USER_ERROR: - echo "<b>My ERROR</b> [$errno] $errstr<br />\n"; - echo " Fatal error in line $errline of file $errfile"; - echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n"; - echo "Aborting...<br />\n"; - exit(1); - break; - case E_USER_WARNING: - echo "<b>My WARNING</b> [$errno] $errstr<br />\n"; - break; - case E_USER_NOTICE: - echo "<b>My NOTICE</b> [$errno] $errstr<br />\n"; - break; - default: - echo "Unknown error type: [$errno] $errstr<br />\n"; - break; - } - return false + switch ($errno) { + case E_USER_ERROR: + echo "<b>My ERROR</b> [$errno] $errstr<br />\n"; + echo " Fatal error on line $errline in file $errfile"; + echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n"; + echo "Aborting...<br />\n"; + exit(1); + break; + + case E_USER_WARNING: + echo "<b>My WARNING</b> [$errno] $errstr<br />\n"; + break; + + case E_USER_NOTICE: + echo "<b>My NOTICE</b> [$errno] $errstr<br />\n"; + break; + + default: + echo "Unknown error type: [$errno] $errstr<br />\n"; + break; + } + + /* Don't execute PHP internal error handler */ + return true; } // function to test the error handling function scale_by_log($vect, $scale) { - if (!is_numeric($scale) || $scale <= 0) { - trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR); - } - - if (!is_array($vect)) { - trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING); - return null; - } - - for ($i=0; $i<count($vect); $i++) { - if (!is_numeric($vect[$i])) - trigger_error("Value at position $i is not a number, using 0 (zero)", E_USER_NOTICE); - $temp[$i] = log($scale) * $vect[$i]; + if (!is_numeric($scale) || $scale <= 0) { + trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR); + } + + if (!is_array($vect)) { + trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING); + return null; } + + $temp = array(); + foreach($vect as $pos => $value) { + if (!is_numeric($value)) { + trigger_error("Value at position $pos is not a number, using 0 (zero)", E_USER_NOTICE); + $value = 0; + } + $temp[$pos] = log($scale) * $value; + } + return $temp; - } +} // set to the user defined error handler $old_error_handler = set_error_handler("myErrorHandler"); // trigger some errors, first define a mixed array with a non-numeric item echo "vector a\n"; -$a = array(2,3, "foo", 5.5, 43.3, 21.11); +$a = array(2, 3, "foo", 5.5, 43.3, 21.11); print_r($a); -// now generate second array, generating a warning -echo "----\nvector b - a warning (b = log(PI) * a)\n"; +// now generate second array +echo "----\nvector b - a notice (b = log(PI) * a)\n"; +/* Value at position $pos is not a number, using 0 (zero) */ $b = scale_by_log($a, M_PI); print_r($b); // this is trouble, we pass a string instead of an array -echo "----\nvector c - an error\n"; +echo "----\nvector c - a warning\n"; +/* Incorrect input vector, array of values expected */ $c = scale_by_log("not array", 2.3); -var_dump($c); +var_dump($c); // NULL // this is a critical error, log of zero or negative number is undefined echo "----\nvector d - fatal error\n"; +/* log(x) for x <= 0 is undefined, you used: scale = $scale" */ $d = scale_by_log($a, -2.5); - +var_dump($d); // Never reached ?> ]]> </programlisting> @@ -309,8 +318,8 @@ [5] => 21.11 ) ---- -vector b - a warning (b = log(PI) * a) -<b>My WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br /> +vector b - a notice (b = log(PI) * a) +<b>My NOTICE</b> [1024] Value at position 2 is not a number, using 0 (zero)<br /> Array ( [0] => 2.2894597716988 @@ -321,13 +330,13 @@ [5] => 24.165247890281 ) ---- -vector c - an error -<b>My ERROR</b> [512] Incorrect input vector, array of values expected<br /> +vector c - a warning +<b>My WARNING</b> [512] Incorrect input vector, array of values expected<br /> NULL ---- vector d - fatal error -<b>My FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br /> -Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)<br /> +<b>My ERROR</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br /> + Fatal error on line 35 in file trigger_error.php, PHP 5.2.1 (FreeBSD)<br /> Aborting...<br /> ]]> </screen>