/** * バックトレース引数をフォーマットして返す * * @access private * @param string $arg バックトレースの引数 * @param int $level バックトレースのネストレベル * @param int $wrap 改行フラグ * @return string 文字列にフォーマットされたバックトレース */ private static function _formatBacktrace($arg, $level = 0, $wrap = true) { $pad = str_repeat(" ", $level); if (is_array($arg)) { $r = sprintf(" %s[array] => (\n", $pad); if ($level + 1 > 4) { $r .= sprintf(" %s *too deep*\n", $pad); } else { foreach ($arg as $key => $elt) { $r .= Ethna_Util::_formatBacktrace($key, $level, false); $r .= " => \n"; $r .= Ethna_Util::_formatBacktrace($elt, $level + 1); } } $r .= sprintf(" %s)\n", $pad); } else { if (is_object($arg)) { $r = sprintf(" %s[object]%s%s", $pad, get_class($arg), $wrap ? "\n" : ""); } else { $r = sprintf(" %s[%s]%s%s", $pad, gettype($arg), $arg, $wrap ? "\n" : ""); } } return $r; }