frankx: erweitertes Error Handling

Beitrag lesen

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ß,

frankx

--
tryin to multitain  - Globus = Planet != Welt