phpbar.de logo

Mailinglisten-Archive

[php] Error_reporting innerhalb einer methode einer Klasse

[php] Error_reporting innerhalb einer methode einer Klasse

Jochen Metzger php_(at)_phpcenter.de
Wed, 9 Oct 2002 20:02:48 +0200


Hallo Leude,

habe folgendes Problem.
Ich möchte gerne eine Warnung (E_WARNING) abfangen und dafür meine eigene
Fehlerbehandlung
verwenden.

Der Aufruf soll in einer Klasse erfolgen. Wenn ich eine function ausserhalb
der Klasse
verwende, funktioniert alles einwandfrei, bein einem Aufruf wie folgt,
innerhalb einer
Klasse, geht jarnischt...;o)

Jemand eine Idee warum -> in der Doku steht wortwörtlich:
(bei set_error_handler)
Note: Instead of a function name, an array containing an object reference
and a method name can
also be supplied.

jemand eine Idee, was ich falsch mache?

Grüße

Jochen Metzger
----------
Code snippet
----------
<?php
function show_err($errno,$errstr){
    print "<h3>Errorhandler als function</h3>";
    print "<br>$errno ... $errstr";
}

class foo{

	function show_err($errno,$errstr){
        print "<h3>Errorhandler als methode</h3>";
        print "<br>$errno ... $errstr";
	}

    function set_err_handler_test1(){
        $result=set_error_handler(array($this,"show_err"));
        if ($result == FALSE)
            print "<br>Uups, initialisierung handler leider schiefgelaufen";
        error_reporting (E_WARNING);
    }

    function set_err_handler_test2(){

        $result=set_error_handler(array(&$this,"show_err"));
        if ($result == FALSE)
            print "<br>Uups, initialisierung handler leider schiefgelaufen";
            error_reporting (E_WARNING);

    }

	function test_it(){


	   $test = "hallo";
	   $t_string = array_shift($test);

	}


}

$tp = new foo();

print "<h3>1. Versuch --- errorhandler als function </h3>";
set_error_handler("show_err");
error_reporting (E_WARNING);
$tp -> test_it();
print "------------------------------";

print "<h3>2. Versuch --- errorhandler als methode </h3>";
$tp -> set_err_handler_test1();
$tp -> test_it();
print "------------------------------";

print "<h3>2. Versuch --- errorhandler als methode </h3>";
$tp -> set_err_handler_test2();
$tp -> test_it();


?>


php::bar PHP Wiki   -   Listenarchive