Hellihello dedlfix,
Bei "debug_backtrace()" scheints mir, dass da Werte vom fünften Paramter wieder auftauchen. Irgendwie krieg ich die rekursiv grad nicht gezählt. Immerhing finde ich im Array debug_backtrace() an Stelle 3 den Key "function", der noch einen Hinweis auf die Funktion gibt.
debug_backtrace() enthält nur die Werte der Funktionsparameter. Andere lokale Variablen sind darin nicht enthalten.
--- START var_dump debug_backtrace() ---:
array(3) {
[0]=>
array(2) {
["function"]=>
string(18) "my_error_handler_2"
["args"]=>
array(5) {
[0]=>
&int(2)
[1]=>
&string(41) "Wrong parameter count for trigger_error()"
[2]=>
&string(44) "D:\xampp\htdocs\PHP_Tests\Error_Handling.php"
[3]=>
&int(70)
[4]=>
&array(4) {
["param"]=>
string(9) "testparam"
["var1"]=>
string(9) "testparam"
["var2"]=>
int(2)
["var3"]=>
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
}
}
}
[1]=>
array(4) {
["file"]=>
string(44) "D:\xampp\htdocs\PHP_Tests\Error_Handling.php"
["line"]=>
int(70)
["function"]=>
string(13) "trigger_error"
["args"]=>
array(0) {
}
}
[2]=>
array(6) {
["file"]=>
string(44) "D:\xampp\htdocs\PHP_Tests\Error_Handling.php"
["line"]=>
int(87)
["function"]=>
string(18) "trigger_error_test"
["class"]=>
string(2) "My"
["type"]=>
string(2) "::"
["args"]=>
array(1) {
[0]=>
&string(9) "testparam"
}
}
}--- END var_dump debug_backtrace() ---:
debug_backtrace()[2] bringt dann in "function" und "class" Funktion und Klasse. "type" bringt ein Paaym-Nekudotaym. Aha. Warum aber die ganzen Referenzen "&"?
Paamayim Nekudotayim.
type string The current call type. If a method call, "->" is returned. If a static method call, "::" is returned. If a function call, nothing is returned.
Und drei davon gibts, weil drei Funktionen gerade aufgerufen sind: 1. der eigene ErrorHandler, 2. der trigger_Error 3. die den Error triggernde Funktion.
Kann ich sicher sein, dass die den Error triggernde Funktion immer auf Platz drei rangiert?
Dank und Gruß,