[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