diff --git a/reference/errorfunc/functions/restore-error-handler.xml b/reference/errorfunc/functions/restore-error-handler.xml
index 009f3c216..7a7405849 100644
--- a/reference/errorfunc/functions/restore-error-handler.xml
+++ b/reference/errorfunc/functions/restore-error-handler.xml
@@ -1,8 +1,5 @@
-
-
-
-
+
restore_error_handler
@@ -15,13 +12,18 @@
truerestore_error_handler
-
- Utilizada después de modificar la función de manejo de errores,
- gracias a set_error_handler,
- restore_error_handler permite reutilizar
- la versión anterior de manejo de errores (que puede ser la
- función PHP por defecto, o alguna otra función del usuario).
-
+
+ Extrae de la pila interna de gestores de errores el gestor que estaba activo
+ antes de la última llamada a set_error_handler y lo
+ vuelve a activar, junto con la máscara
+ error_levels con la que fue registrado.
+ El gestor restaurado puede ser el gestor interno o una función definida por
+ el usuario.
+
+
+ Llamar a esta función más veces que a set_error_handler
+ deja activo el gestor de errores interno; no se genera ningún error.
+
@@ -72,15 +74,13 @@ Valor incorrectamente serializado.
&reftitle.seealso;
-
-
- error_reporting
- set_error_handler
- get_error_handler
- restore_exception_handler
- trigger_error
-
-
+
+ error_reporting
+ set_error_handler
+ get_error_handler
+ restore_exception_handler
+ trigger_error
+
-
-
+
set_error_handler
@@ -15,10 +13,13 @@
callablenullcallbackinterror_levelsE_ALL
-
- set_error_handler selecciona la función de usuario
- callback para gestionar errores en un script.
-
+
+ Define una función de usuario (callback) para
+ gestionar los errores de un script.
+ El gestor que estaba activo hasta ese momento se guarda en una pila interna
+ de gestores de errores, de la cual restore_error_handler
+ lo vuelve a extraer.
+
Esta función puede ser utilizada para definir gestores de errores personalizados durante la ejecución,
por ejemplo en aplicaciones que necesitan limpiar archivos/datos cuando ocurre un error crítico
@@ -65,10 +66,13 @@
callback
-
- Si &null; es proporcionado, el gestor es reestablecido a su estado por defecto.
+
+ Si se proporciona &null;, no queda activo ningún gestor definido por el
+ usuario y los errores vuelven al gestor de errores interno.
+ El gestor que estaba activo hasta ese momento sigue guardado en la pila y
+ puede recuperarse con restore_error_handler.
De lo contrario, el gestor es una función de retorno con la siguiente firma:
-
+
boolhandler
@@ -335,24 +339,84 @@ vector d - error fatal
MI ERROR [256] log(x) para x <= 0 es indefinido, usted usó: scale = -2.5
Error fatal en la línea 36 en el archivo trigger_error.php, PHP 4.0.2 (Linux)
Abandono...
+]]>
+
+
+
+
+
+ Llamada al gestor anterior desde el nuevo
+
+ El valor devuelto por set_error_handler es el gestor
+ que estaba activo hasta ese momento. Llamarlo desde el nuevo gestor
+ conserva el comportamiento existente y le añade el nuevo. Esto solo
+ funciona si ese gestor es una función definida por el usuario; se devuelve
+ &null; cuando el gestor activo era el interno.
+
+
+
+]]>
+
+ &example.outputs;
+
+
+
+ &reftitle.notes;
+
+
+ No se debe volver al gestor anterior pasando de nuevo a
+ set_error_handler el valor que esta devolvió.
+ Al hacerlo se añade una entrada más a la pila en lugar de retirar una, por
+ lo que la pila crece sin límite en los bucles y en los procesos de larga
+ duración, y error_levels se reinicia a
+ E_ALL, ampliando de forma silenciosa el rango de
+ errores que recibe el gestor restaurado.
+ restore_error_handler es la forma prevista de volver
+ al gestor anterior.
+
+
+
+
&reftitle.seealso;
-
-
- ErrorException
- error_reporting
- restore_error_handler
- get_error_handler
- trigger_error
- Constantes de nivel de error
-
-
+
+ ErrorException
+ error_reporting
+ restore_error_handler
+ get_error_handler
+ trigger_error
+ Constantes de nivel de error
+