*/ /** Display the backtrace in HTML with clicks to display the content */ class backtrace { /** Display the backtrace in the browser * use: \backtrace::show (debug_backtrace ()); * @param array $backtrace The backtrace to display */ public static function show ($backtrace) { if (! is_array ($backtrace)) throw new \Exception ("Backtrace invalid: not an array", 500); echo "
Debug BackTrace:\n";
    foreach ($backtrace as $key=>$back)
    {
      echo "";
      echo "$key => ";
      if (array_key_exists ("file", $back))
        echo $back["file"]."[".$back["line"]."] : ";
      if (array_key_exists ("class", $back))
        echo $back["class"];
      echo "::".$back["function"]. "(";
      if (array_key_exists ("args", $back))
      {
        foreach ($back["args"] as $k=>$arg)
        {
          if ($k > 0)
            echo ", ";
          if (is_array ($arg))
            echo "ARRAY";
          elseif (is_object ($arg))
            echo "OBJECT ".get_class ($arg);
          elseif (is_bool ($arg))
            echo ($arg === true) ? "true" : "false";
          elseif (is_string ($arg))
            echo "\"$arg\"";
          elseif (is_int ($arg) || is_float ($arg))
            echo $arg;
          else
            var_dump ($arg);
        }
      }
      echo ")";
      echo "";
      echo "\n";
    }
    echo "
\n"; } }