PHP 7.0.0 Beta 2 Released

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

restore_error_handlerBir önceki hata eylemcisini devreye sokar

Açıklama

bool restore_error_handler ( void )

set_error_handler() ile hata eylemcisini değiştirdikten sonra önceki hata eylemcisini (yerleşik veya kullanıcı tanımlı bir işlev) devreye sokmak için kullanılır.

Dönen Değerler

Bu işlev daima TRUE döndürür.

Örnekler

Örnek 1 - restore_error_handler() örneği

unserialize() bir hataya sebep olsun, böylece özgün hata eylemcisini devreye sokalım.

<?php
function unserialize_handler($errno$errstr)
{
    echo 
"Dizgeleştirilmiş değer geçersiz.\n";
}

$serialized 'foo';
set_error_handler('unserialize_handler');
$original unserialize($serialized);
restore_error_handler();
?>

Yukarıdaki örneğin çıktısı:

Dizgeleştirilmiş değer geçersiz.

Notlar

Bilginize:

restore_error_handler() işlevi hata_eylemci işlevinden çağrıldığında yok sayılır.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 3 notes

up
7
edgarinvillegas at hotmail dot com
7 years ago
Isolde is kind of wrong. The error handlers are stacked with set_error_handler(), and popped with restore_error_handler(). Here i put an example:

<?php
    mysql_connect
("inexistent"); //Generate an error. The actual error handler is set by default

   
function foo1() {echo "<br>Error foo1<br>";}
    function
foo2() {echo "<br>Error foo2<br>";}
    function
foo3() {echo "<br>Error foo3<br>";}
   
   
set_error_handler("foo1");    //current error handler: foo1
   
set_error_handler("foo2");    //current error handler: foo2
   
set_error_handler("foo3");    //current error handler: foo3
   
   
mysql_connect("inexistent");   
   
restore_error_handler();        //now, current error handler: foo2
   
mysql_connect("inexistent");    
   
restore_error_handler();        //now, current error handler: foo1
   
mysql_connect("inexistent");
   
restore_error_handler();        //now current error handler: default handler
   
mysql_connect("inexistent");
   
restore_error_handler();        //now current error handler: default handler (The stack can't pop more)
?>
up
1
lsole at maresme dot net
11 years ago
As the docs say, restore_error_handler() revert to the *previous error handler*... even if it is the same. A bug made me set twice my custom error handler and later when I was calling restore_error_handler() to restore the built-in handler nothing seemed to happen... this puzzled me for a while!
up
1
TiMESPLiNTER
3 months ago
Works also for restoring nested error handlers:

<?php

error_reporting
(E_ALL);

echo
'<pre>';

set_error_handler(function($errno, $errstr, $errfile, $errline, array $errcontext) {
    echo
'ErrorHandler 1: ' , $errstr , PHP_EOL;
});

trigger_error('Error 1');

set_error_handler(function($errno, $errstr, $errfile, $errline, array $errcontext) {
    echo
'ErrorHandler 2: ' , $errstr , PHP_EOL;
});

trigger_error('Error 2');

restore_error_handler();

trigger_error('Error 3');

restore_error_handler();

trigger_error('Error 4');

?>
To Top