[prev in list] [next in list] [prev in thread] [next in thread]
List: php-doc-cvs
Subject: [DOC-CVS] [doc-en] master: Modernize ErrorException example code (#2782)
From: divinity76 via GitHub <noreply () php ! net>
Date: 2023-09-25 1:53:56
Message-ID: lbneg2CSMY0gnNJdJ7By4O9KVU2xV3Jzc7vZgjy00 () main ! php ! net
[Download RAW message or body]
Author: divinity76 (divinity76)
Committer: GitHub (web-flow)
Pusher: Girgias
Date: 2023-09-25T02:56:31+01:00
Commit: https://github.com/php/doc-en/commit/e6376e04ed2526138e5b71e16168cf6bb269fa8a
Raw diff: https://github.com/php/doc-en/commit/e6376e04ed2526138e5b71e16168cf6bb269fa8a.diff
Modernize ErrorException example code (#2782)
IMO the old example should have been
set_error_handler(__NAMESPACE__ . "\\exception_error_handler");
so it would work in any namespace, instead of just working in the global namespace, \
and crash-at-runtime if used in any other namespace, but as of PHP8.1.0 we have an \
even better way to do it: set_error_handler(exception_error_handler(...));
Co-authored-by: George Peter Banyard <girgias@php.net>
Changed paths:
M language/predefined/errorexception.xml
Diff:
diff --git a/language/predefined/errorexception.xml \
b/language/predefined/errorexception.xml index b499adeea16..a2d47adfbf2 100644
--- a/language/predefined/errorexception.xml
+++ b/language/predefined/errorexception.xml
@@ -81,14 +81,16 @@
<programlisting role="php">
<![CDATA[
<?php
-function exception_error_handler($severity, $message, $file, $line) {
- if (!(error_reporting() & $severity)) {
+function exception_error_handler(int $errno, string $errstr, string $errfile = null, \
int $errline) { + if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting
return;
}
- throw new ErrorException($message, 0, $severity, $file, $line);
+ throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
}
-set_error_handler("exception_error_handler");
+set_error_handler(exception_error_handler(...));
+// Prior to PHP 8.1.0 and the introduction of the first class callable syntax, the \
following call must be used instead +// set_error_handler(__NAMESPACE__ . \
"\\exception_error_handler");
/* Trigger exception */
strpos();
--
PHP Documentation Commits Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic