From 17ebd5b70a054c09de04ed08fbd2499c271b9b59 Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Sun, 14 Jan 2007 19:43:52 +0000 Subject: [PATCH] Fix example and add some whitespace to make it readable git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@227237 c90b9560-bf6c-de11-be94-00142212c4b1 --- .../errorfunc/functions/set-error-handler.xml | 107 ++++++++++-------- 1 file changed, 58 insertions(+), 49 deletions(-) diff --git a/reference/errorfunc/functions/set-error-handler.xml b/reference/errorfunc/functions/set-error-handler.xml index b31a6316ed..d96e643739 100644 --- a/reference/errorfunc/functions/set-error-handler.xml +++ b/reference/errorfunc/functions/set-error-handler.xml @@ -1,5 +1,5 @@ - + @@ -223,75 +223,84 @@ My ERROR [$errno] $errstr
\n"; - echo " Fatal error in line $errline of file $errfile"; - echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")
\n"; - echo "Aborting...
\n"; - exit(1); - break; - case E_USER_WARNING: - echo "My WARNING [$errno] $errstr
\n"; - break; - case E_USER_NOTICE: - echo "My NOTICE [$errno] $errstr
\n"; - break; - default: - echo "Unknown error type: [$errno] $errstr
\n"; - break; - } - return false + switch ($errno) { + case E_USER_ERROR: + echo "My ERROR [$errno] $errstr
\n"; + echo " Fatal error on line $errline in file $errfile"; + echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")
\n"; + echo "Aborting...
\n"; + exit(1); + break; + + case E_USER_WARNING: + echo "My WARNING [$errno] $errstr
\n"; + break; + + case E_USER_NOTICE: + echo "My NOTICE [$errno] $errstr
\n"; + break; + + default: + echo "Unknown error type: [$errno] $errstr
\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 $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 ?> ]]>
@@ -309,8 +318,8 @@ Array [5] => 21.11 ) ---- -vector b - a warning (b = log(PI) * a) -My WARNING [1024] Value at position 2 is not a number, using 0 (zero)
+vector b - a notice (b = log(PI) * a) +My NOTICE [1024] Value at position 2 is not a number, using 0 (zero)
Array ( [0] => 2.2894597716988 @@ -321,13 +330,13 @@ Array [5] => 24.165247890281 ) ---- -vector c - an error -My ERROR [512] Incorrect input vector, array of values expected
+vector c - a warning +My WARNING [512] Incorrect input vector, array of values expected
NULL ---- vector d - fatal error -My FATAL [256] log(x) for x <= 0 is undefined, you used: scale = -2.5
-Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)
+My ERROR [256] log(x) for x <= 0 is undefined, you used: scale = -2.5
+ Fatal error on line 35 in file trigger_error.php, PHP 5.2.1 (FreeBSD)
Aborting...
]]>