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>